诡异的js正则问题,匹配到了正则里没有的字符 function ddd() { var temp = " $"; var reg = /[\'\";#-*%&]+/; alert(reg.test(temp))}正则表达式中,并没有匹配美元符号$,但是alert的结果竟然是true,为什么啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不诡异,是楼主不了解字符组的语法而已<script type="text/javascript"> 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其中的任意一个 紧急求助!!ExtJS grid triggerfield的问题 怎样屏蔽ie本身的右键 请问如何在frame间拖拽div js触发客户端程序的方法? 救命,是腾迅TT的问题吗? 急,关于动态修改下拉菜单内容 一个简单的问题!高分等! 在Firefox中如何限制textarea每行输入的字符数? 怎样把一个值赋给一个类型为file的input,但要让这个<input>在网页上不可见 请问:以下2个语句在javascript中的区别? JS页面重新载入后的传值问题 仿开心网JQuery做的下拉选择控件
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其中的任意一个