2012-03-04 12 views
1

この正確な正規表現の機能をjavascriptに変更するにはどうすればいいですか?このphp正規表現をjavascriptに変換する

$ismatch= preg_match('|She is a <span><b>(.*)</b></span>|si', $sentence, $matchresult); 

if($ismatch) 
{ 
     $gender= $matchresult[1]; 
} 
else{ //do other thing } 
+0

ニュースは、JSはdotallスイッチをサポートしていませんhttp://stackoverflow.com/questions/1068280/javascript-regex-multiline-flag-doesnt-work – Petah

+0

これは適切に言い表せば、これは良い質問かもしれないし、焦点はdotall修飾子...現在の状態では、「私のために働いてください」というように聞こえるn。 –

答えて

3

JavaScriptがs修飾子をサポートしていないので、これは非常に簡単ではありません。

同等の正規表現オブジェクトは、次のようにJavaScriptで行われるであろう

/She is a <span><b>([\s\S]*)<\/b><\/span>/i 

(一致がある場合、一致からのグループ1の抽出)コードの機能を次のようになります悪い

var myregexp = /She is a <span><b>([\s\S]*)<\/b><\/span>/i; 
var match = myregexp.exec(subject); 
if (match != null) { 
    result = match[1]; 
} else { 
    // do other thing 
} 
+1

'[\ s \ S]'アプローチに関する情報は、[MDN](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/RegExp)にあります:*(小数点)は、改行文字「\ n」「\ r」「\ u2028」または「\ u2029」以外の1文字です。 ( '[\ s \ S]'は改行を含む任意の文字にマッチさせることができます)* –

+0

または特殊なJS機能 '[^]'を使用してください。 – Qtax

+0

@ Qtax:うわー、私はこれまでにこれを見たことがなかった。これに関する文書はありますか? –