Javascript 正则表达式和浏览器依赖关系
为什么下面的正则表达式:Javascript 正则表达式和浏览器依赖关系,javascript,Javascript,为什么下面的正则表达式: var regex = /[^a-zA-Z0-9,-\s]/g 不适用于Firefox和IE,但适用于Safari和Chrome 但如果我将其更改为: var regex = /[^a-zA-Z0-9-\s,]/g 它适用于上述所有浏览器 有人能解释一下为什么逗号(,)是这里的坏蛋吗?我刚刚测试了这个脚本,它在Internet Explorer(8)、Chrome和Firefox上运行:/[^a-zA-Z0-9\s,-]/g。以上投票支持我的评论让我相信我是对的。我
var regex = /[^a-zA-Z0-9,-\s]/g
不适用于Firefox和IE,但适用于Safari和Chrome
但如果我将其更改为:
var regex = /[^a-zA-Z0-9-\s,]/g
它适用于上述所有浏览器
有人能解释一下为什么逗号(
,
)是这里的坏蛋吗?我刚刚测试了这个脚本,它在Internet Explorer(8)、Chrome和Firefox上运行:/[^a-zA-Z0-9\s,-]/g
。以上投票支持我的评论让我相信我是对的。我刚刚测试了这个脚本,它在Internet Explorer(8)、Chrome和Firefox上运行:/[^a-zA-Z0-9\s,-]/g
。以上投票支持我的评论,让我相信我是对的。我不是100%确定(因此评论),但你的问题可能是连字符。尝试将正则表达式更改为/[^a-zA-Z0-9\s,-]/g
。在方括号内,-
表示一个范围,它可能会破坏您的正则表达式。我不是100%确定(因此评论),但您的问题可能是连字符。尝试将正则表达式更改为/[^a-zA-Z0-9\s,-]/g
。在方括号内,-
表示一个范围,它可能会破坏您的regex.yes。如果要匹配实际的文字连字符,最好将连字符放在]
前面,以避免与范围混淆,或者用反斜杠转义…是的。如果要匹配实际的文字连字符,最好将连字符放在]
前面,以避免与范围混淆,或者用反斜杠转义。。。