0
<form name="form1">
<input type="textbox" name="txtInput" />
<script type="text/javascript">
function validate() {
if (! document.form1.txtInput.value.match(/\bSun(il)? (Mishra)?\b/)){
    alert("Please enter valid value!");
} else {
    alert("Success!");
}
}
</script>
<input type="button" name="btnSubmit" onclick="validate()" value="Go" />

Sunil MishraSun Mishraでは成功しますが、 Sunil OR Sunでは成功しません。入力をスペースで入力しようとしましたが、それも機能しません。

コードに何か問題がありますか?

4

3 に答える 3

4

スペースがオプションの場合は、2 番目のグループにもある必要があります。

/\bSun(il)?( Mishra)?\b/

\b末尾にスペースを追加してもうまくいかないのは、スペースの後の文字列の末尾に単語境界 ( ) がないためです。

于 2013-06-07T13:00:09.637 に答える
1
/\bSun(il)? (Mishra)?\b/

これが一致しない、Sunまたは一致しない理由は、正規表現パターンの 2 つの名前の間にスペースがあるためです。SunilMishra

スペースはオプションとして表示されていないため、オプションであってもスペースが存在しない場合、パターンは一致しませんMishra

これを修正するには、角かっこを移動しMishraて、その前にスペースを含めます。

/\bSun(il)?( Mishra)?\b/
于 2013-06-07T13:01:00.933 に答える
0

他の回答が指摘しているように、2 番目のグループにスペースを追加するのではなく、次を使用できます/\bSun(il)?\s*(Mishra)?\b/。これにより、複数のスペース、タブなどが許可され、Mishra グループの結果から除外されます。

于 2013-06-07T13:10:35.303 に答える