javascript中的test方法

本文介绍了JavaScript中正则表达式test()方法的使用方法及其参数与返回值。并通过示例展示了如何解决因匹配位置记忆导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义和用法

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值