javascript - 正则表达式在java代码中工作但在javascript代码中不起作用

标签 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 脚本中同样不起作用

谁能告诉我这个问题的解决方案

谢谢阳光伴侣

最佳答案

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

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 .

但是,再次强调,如果没有精确的问题,就不可能给出精确的答案。而且,当您尝试改进问题时,您更有可能发现错误。

关于javascript - 正则表达式在java代码中工作但在javascript代码中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4041482/

相关文章:

javascript - 在 React 中如何将标准 html 作为组件传递?

javascript - javascript .childNodes 和 .children 之间的区别

来自 Google Adsense 的 Javascript 错误

javascript - HTTP 从本地服务器请求数据

javascript - SoundCloud JavaScript API v. 3 SC.stream 错误

javascript - 面向对象的 Javascript 中的“This”

javascript - 单击后,如何设置事件处理程序以在后续单击时触发?

javascript - 从 PHP 页面动态值解析到弹出模态框

javascript - d3 我希望隐藏网格线溢出

javascript - 在 PHP 中查询嵌套的 HTML 标签以返回其属性的值