定义和用法
test() 方法用于检测一个字符串是否匹配某个模式.
语法
RegExpObject.test(string)
参数 | 描述 |
---|---|
string | 必需。要检测的字符串。 |
返回值
如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
说明
调用 RegExp 对象 r 的 test() 方法,并为它传递字符串 s,与这个表示式是等价的:(r.exec(s) != null)。
例1:
<script type="text/javascript"> var reg1=//d/g; var num1=1; alert(reg1.test(num1)); alert(reg1.test(num1)); var reg2=//d/g; var num2=12; alert(reg2.test(num2)); alert(reg2.test(num2)); </script> 输出结果:true false true true
注意:正则表达式中的test()、exec()方法对当前匹配位置有“记忆”。如果每次需要从头开始进行匹配需要用compile()重新编译正则表达式。
实例问题:
<script type="text/javascript"> function show(){ var number=parseInt(window.prompt("","")); var reg=//d+/g; var f1=reg.test(number); alert(f1); } </script> <body > <input id="pid" οnclick="show()" /> </body>
ie6.0下输出结果:第1次输入1提示true,反复输入测试均为true。
firefox下输出结果:第1次输入1提示true,第2次输入的时候则为false。
这时候就需要每次对正则表达式重新编译或者重新改变匹配位置。
解决方案1:
<script type="text/javascript"> function show(){ var number=parseInt(window.prompt("","")); var reg=//d+/g; reg.compile(//d+/g); var f1=reg.test(number); alert(f1); } </script> <body > <input id="pid" οnclick="show()" /> </body>
ie/firefox下输出正常:反复输入测试均为true。
解决方案2:
通过修改lastIndex
<mce:script type="text/javascript"> function show(){ var number=parseInt(window.prompt("","")); var reg=//d+/g; reg.lastIndex=0; var f1=reg.test(number); alert(f1); } </script> <body > <input id="pid" οnclick="show()" /> </body>
ie/firefox下输出正常:反复输入测试均为true。