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。如果要匹配实际的文字连字符,最好将连字符放在
]
前面,以避免与范围混淆,或者用反斜杠转义…是的。如果要匹配实际的文字连字符,最好将连字符放在
]
前面,以避免与范围混淆,或者用反斜杠转义。。。