如果用new RegExp建立正则可以用$name变量值,用/ /的方法建立正则怎么做?
var $name = "time"; var reg = new RegExp($name,"g"); var str = "time is one datimey time" alert(str.replace(reg,""))
二。如果用//建立正则可以用\b边界符,在用new RegExp的情况下怎么做,特别是在上例中使用$name变量的情况下
var reg =/\btime\b/ var str = "time is one datimey time" alert(str.replace(reg,""))
new RegExp("xxx","g");
还要加其它的直接加上去就行了,如:new RegExp("xxx","gi");,顺序没关系。
没太看明白你的意思,给你一个例子 你看看 验证用户名的:
var name = document.getElementById("name").value; reg = new RegExp(/^[a-z]{6,12}$/i); if (!(reg.test(name))) { alert("请输入6到12位纯字母用户名!"); return false; }
i 表示忽略大小写
就是说 var p=/test/g 这是正则匹配“test”字符串。但是如果这里的test是一个js变量 var test="kitty",那我应该怎么写
new RegExp(pattern, attributes);
第二个参数可以指定"g"、"i" 和 "m"
http://www.w3school.com.cn/js/jsref_obj_regexp.asp
var test="test";
reg = new RegExp(/test/i);
if (!(reg.test(test))) {
document.write('匹配不是很成功哦,亲!');
return false;
}
else{
confirm("已经匹配成功!亲");
}
房主试试吧 我已测试过 test 加了引号 能匹配成功 ,不加 则失败
楼主是想匹配变量值,不要匹配变量名,是吧
如果变量名和变量值一样的话,那就应该找到两者的不同,然后再决定使用什么正则表达式,而这里变量名和变量值的不同就是变量值有引号,因此正则表达式需要体现引号……
so,楼上说的应该是正确的……
"匹配变量值,不要匹配变量名" 是的