最近做项目的时候,遇到要使用js或者jquery处理一些字符串的问题,尤其是匹配问题,这类问题,自然而言就归到正则表达式了。
使用正则表达式,无疑可以帮助开发者减轻代码量,而且效率更高。
那么,在使用js的test的时候,是否也遇到了reg.test is not a function之类的问题呢?
经过多次调试发现,网上给出的教程大多数是错误。
① test(str),判断字符串str是否匹配表达式,返回一个布尔值。例如: var regx=/user/d+/g; var flag=regx.test(“user12dd”); flag的值为true。
-------------------->出自zaifendou的《js正则表达式语法》
② 使用 var reg = new RegExp("\user/d+g\");
reg.test("user12dd");
使用反双斜杠代替斜杠。
--------------------------->出自哪里,已经忘了
最后,经过度娘,发现原来是语法错误。只是自己没有按照一定的关键字搜索,没有检索到自己想要的答案,我一直使用"test is not a function js正则表达式"的字样检索,结果忙碌很长时间。但是就在作者写此文时,换了一种检索方法:"js test正则表达式",结果出其不意啊,到处都是正确的写法:
js中正则表达式匹配时,如果使用test函数,就必须不带引号,并且必须是先定义规则变量。所有带引号的都是错误的!!!
如果不适用test,使用match则可以带引号。
var re = /^[1-9]d{4,10}$/;
var str = "123456";
alert(re.test(str)); //返回true