javascriptのtestメソッド



定義と用法
test()メソッドは、文字列があるモードにマッチするかどうかを検出するために使用されます.
構文
RegExpObject.test(string)
パラメータ
説明
ストリングス
必要です.検出する文字列.
戻り値
文字列stringにRegExpObjectにマッチするテキストが含まれている場合、trueを返します.そうでなければfalseを返します.
説明
RegExpオブジェクトrのtest()メソッドを呼び出し、文字列sを転送し、この表現式と等価である:(r.exec(s)=null).
 
例1:
<script type=「text/javascript」>var reg 1=/d/g;var num 1=1alert(reg 1.test(num 1);alert(reg 1.test(num 1);var reg 2=//d/gvar num 2=12alert(reg.2 test(num 2);alert(reg.2 test(num 2);script>出力結果:true false true true
 
注意:正規表現のtest()、exec()メソッドは現在のマッチング位置を「記憶」しています.毎回最初からマッチする必要がある場合は、comple()で正規表現を再コンパイルする必要があります.
 
 
実例問題:
<script type=“text/javascript”>function show(){var number=parseInt(window.prompt(");var reg=/////g;var f 1=reg.test(number);alert(f 1)<
ie 6.0下出力結果:第1回入力1ヒントtrue、繰り返し入力テストはすべてtrueです.
firefoxで出力された結果:1回目の入力はtrue、2回目の入力はfalseです.
 
この場合は、正規表現をコンパイルするたびに、マッチする位置を変更する必要があります.
ソリューション1:
<script type=“text/javascript”Fnction shw(){var number=parseInt(window.prompt("、");var reg=//d+/g;reg.com(/d+/g);var f 1=reg.test(("""""""""")))<<[[[[[[[]]]]]]]]]]]]]]""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""">
ie/firefoxでの出力は正常です.繰り返し入力テストはすべてtrueです.
 
ソリューション2:
lastIndexを変更することにより
<mce:script type=“text/javascript”>function shw(){var number=parseInt(window.prompt(""");var reg=//d+/g;reg.lastIndex=0;var f 1=reg.test(number clpt""<<"""""""""""""""""""""""""")))、(((("))))"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
ie/firefoxでの出力は正常です.繰り返し入力テストはすべてtrueです.