正则表达式在java代码中工作但不能在javascript代码中工作

时间:2010-10-28 09:27:49

标签: javascript

我有以下正则表达式在JAVA代码中正常工作

[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?

但同样不适用于Java脚本

任何人都可以告诉我这个解决方案

感谢Sunny Mate

2 个答案:

答案 0 :(得分:2)

我将这些集合中的最后一个连字符作为第一个字符:

Before:
[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]
After:
[-A-Za-z0-9!#$%&'*+/=?^_`{|}~]

连字符将允许一系列字符。如果它是集合的第一个字符,它将被视为连字符。否则,它可能意味着“从'〜'直到'''”

但是,如果没有一个确切的问题,很难准确回答。

修改: 我在simple JavaScript RegEx tester上测试了这个表达式,我发现它的目的是匹配电子邮件地址。在我用单个\\替换双反斜杠\后,它对我有用。

在JavaScript中,以下两个应该相同:

var re = /a\.c/;  
var re = new RegExp("a\\.c");  

但是第二个需要双反斜杠,因为它被包含在一个字符串中,这需要转义。如果所有其他方法都失败了,请检查Mozilla Developer Center

但是,如果没有一个确切的问题,就不可能给出准确的答案。更重要的是,当你试图改善你的问题时,你更有可能找到你的错误。

答案 1 :(得分:0)

正则表达式在每种编程语言中略有不同,请参考手册/文档。