function ddd() {
var temp = " $";
var reg = /[\'\";#-*%&]+/;
alert(reg.test(temp))
}正则表达式中,并没有匹配美元符号$,但是alert的结果竟然是true,为什么啊
var temp = " $";
var reg = /[\'\";#-*%&]+/;
alert(reg.test(temp))
}正则表达式中,并没有匹配美元符号$,但是alert的结果竟然是true,为什么啊
for(var i='#'.charCodeAt();i<='*'.charCodeAt();i++)
{
document.write(String.fromCharCode(i) + "<br />");
}
</script>
//输出
#
$
%
&
'
(
)
*[]支持用连字符“-”连接两个字符,来表示一个字符范围。需要注意的是,“-”前后的两个字符是有顺序的,即使用相同的编码时,后面的字符码位应大于或等于前面字符的码位。
由于“#”和“*”符合要求,[#-*]可以一个字符范围,其中就包含了字符“$”,所以楼主的正则是可以匹配“$”的,如果不想要这样的效果,只是把“-”当作一个普通字符处理,那么要么换个位置,要么把“-”转义
function ddd() {
var temp = " $";
var reg = /[\'\";#\-*%&]+/;
alert(reg.test(temp))
}
function ddd() {
var temp = " $";
var reg = /[\'\";#\-\*%&]+/;
alert(reg.test(temp))
}
这个 过客兄讲的很清楚了.
主要就是字符组[]里连字符-的理解
[a-z]: a-z之间的小写字母
[-az]: 匹配- a z其中的任意一个