诡异的js正则问题,匹配到了正则里没有的字符
来源:百度知道 编辑:UC知道 时间:2024/05/02 10:24:34
function ddd() {
var temp = " $";
var reg = /[\'\";#-*%&]+/;
alert(reg.test(temp))
}
正则表达式中,并没有匹配美元符号$,但是alert的结果竟然是true,为什么啊
var temp = " $";
var reg = /[\'\";#-*%&]+/;
alert(reg.test(temp))
}
正则表达式中,并没有匹配美元符号$,但是alert的结果竟然是true,为什么啊
reg中用到了-这个符号,表示#到*号之间所有的字符,而$符号正好在#与*之间,因此会出现为true的问题。去掉-这个符号就回为false了。
比如
var numtemp = "2";
var numreg = /[1-5]/
alert(numreg.test(numtemp));
基础没学好,哈哈
呵呵 “-” 是正则式的关键字符
你写成这样试试 var reg = /[\'\";#\-*%&]+/;
对“-” 转义一下
var reg = /[\'\";#-*%&]+/;
改成var reg = /[\'\";#*%&-]+/;
即调整减号的位置,因为#-*,意味着键盘上从#到*的所有符号(即#$%^&*),
这里的减号意思被改变了。
试一下吧!
mark