方法 1:
プロジェクトで作業しているときに、フォーム入力の正確性を確認するために js を使用する必要がある場合があります。この場合、js 正規表現を使用する必要があります。例: たとえば、月を確認する場合、形式は「yyyy-MM」です。この正規表現を書き出すことができない場合は、Google や Baidu を使用することもできます。 . インターネット上にはたくさんの例があります。ただし、この方法で js 正規表現を徹底的に書き込むと、新たな問題も発生します。設定ファイルの月の形式が変更されたらどうなるでしょうか? 「yyyyMM」または「yyyy_MM」に変更します...? ? js の正規表現を何度も変更することを覚えておく必要がありますか? ?
この時点で、次のことを考えなければなりません。構成ファイルを変更した後は、コードを変更する必要がなくなるので、どうすればよいでしょうか?
作者は js マニュアルを調べましたが、文字列を正規表現に変換する方法を見つけられませんでした。しかし、この問題は、スクリプトを動的に実行する eval(); メソッドを使用することで間接的に解決できます。したがって、より汎用性の高いコードを作成できます。
上記の例に対する一般的な解決策を以下に示します。
/**
* 月のフォーム入力が正当かどうかを確認します
* パターン: 月の形式文字列
* id: フォーム ID
*/
function validateMonth(pattern, id) {
var text = document.getElementById(id)
var monthStr = text.value; ;
var splitChar = "";
if(pattern.length > 6) splitChar = pattern.substring(4, pattern.length - 2);
eval("var re = /\d{ 4}" splitChar " \d{2}$/;");
//var re = /d{4}-d{2}$/;
if(monthStr.match(re) == null) {
alert("入力には [" pattern "] 形式を参照してください。
" "例: "2010" SplitChar "11" または "2010" SplitChar "03"");
text.value = "";
text.focus();
return false;
}
return true;
}
/**
* 月のフォーム入力が正当かどうかを確認します
* パターン: 月の形式文字列
* id: フォーム ID
*/
function validateMonth(pattern, id) {
var text = document.getElementById(id);
var monthStr = text.value; 🎜>var splitChar = "";
if(pattern.length > 6) splitChar = pattern.substring(4, pattern.length - 2);
eval("var re = /\d{4} " splitChar " \d{2}$/;");
//var re = /d{4}-d{2}$/;
if(monthStr.match(re) == null) {
alert("入力には [" pattern "] の形式を参照してください。
" "例: "2010" SplitChar "11" または "2010" SplitChar "03"");
text.value = "";
text.focus();
return false;
}
return true;
}
注意すべき点が 1 つあります。スクリプト文字列を動的に記述して実行のために eval() メソッドに渡す場合、文字 '' はエスケープ
方法 2:
<script> <div class="codebody" id="code28825"> var n=new Array( ".htm ", ".html ", ".shtml "); <br>//var pattern1 = new RegExp( "\w \ " n[0] "$ ", "gi ") ; <br>var s1= "b.shtml "; <br>for(var i=0;i <n.length>{ <br>pattern1 = new RegExp( "\w \ " n[i] "$ ", "gi "); <br>result|=pattern1.test(s1); <br>alert(ブール値(結果)); <br></script>