ホームページ > 記事 > ウェブフロントエンド > JavaScript RegEx が入力の検証に失敗するのはなぜですか?
In the context of the query referenced in the title, "Javascript RegEx Not Working," a user encountered an issue where a regular expression (regEx) consistently returned false, regardless of the input value. The code snippet provided in the inquiry is as follows:
<code class="javascript">function checkLegalYear() { var val = "02/2010"; if (val != '') { var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g"); if (regEx.test(val)) { //do something } else { //do something } } }</code>
The user attempted to validate year inputs using a RegEx and experienced unexpected results. Despite testing this code in multiple online editors, the RegEx continued to return false.
Addressing the Issue:
The root of the problem lies in the method used to create the RegEx object. When defining a RegEx from a string, backslash characters must be doubled up to prevent incorrect interpretation during the parsing process. To rectify this, the following code should be used:
<code class="javascript">var regEx = new RegExp("^(0[1-9]|1[0-2])//\\d{4}$", "g");</code>
Alternatively, it's recommended to use the RegEx syntax directly, which eliminates the need for doubling backslashes:
<code class="javascript">var regEx = /^(0[1-9]|1[0-2])//\\d{4}$/g;</code>
By implementing these modifications, the RegEx should now function as intended, validating year inputs and providing accurate results.
以上がJavaScript RegEx が入力の検証に失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。