首页 > 技术文章 > js中使用正则表达式的函数test时出现问题

albert-think 2017-08-22 13:53 原文

最近做项目的时候,遇到要使用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

推荐阅读