js正则表达式

正则表达式总结:

前端输出的字符串:var str="/^[0-9]*$/" ,若用对象的话 直接eval(str) 就ok  

因为正则test貌似只能对象才可以, 个人测试的,

伪代码如下:

var regularExp=/^[0-9]*$/;

if(regularExp.test(column_form_name_value)!=true){}  这样就ok

var regularExp="/^[0-9]*$/";

if(regularExp.test(column_form_name_value)!=true){}  这样就存在问题,需要把正则表达式转对象才可以。

又搞了2个小时的心得================哎 ==============fuck=============长点记性吧

一、伪代码对比

经典,错误伪代码:

var zz=returnstr.split(",")[1];

var regularExp=new RegExp(zz);

var flg=regularExp.test(column_form_name_value);

经典,正确伪代码:

var zz=returnstr.split(",")[1];

var regularExp=new RegExp(eval(zz));

var flg=regularExp.test(column_form_name_value);

二、查找分析原因:

数据库存放的是 /\S/

前端通过console.log输出的也是/\S/

但是regularExp=new RegExp(zz);这样写,的test怎么就是判断不正确呢,因为zz输出的是字符串,

但是若用字符串的方式判断是否是字符串,却判断不了, 因为里面含有转义字符串,

为什么直接放到RegExp这里面可以(new RegExp(/\S/)),因为符合正则表达式规则,是正则表达式的对象。

解决这种问题。需要转变成对象就可以了。更改成这样的regularExp=new RegExp(eval(zz));就行了。

相关推荐