javascript - 从数据库中检索正则表达式在java和javascript中是不同的

标签 javascript java regex client server

我的数据库中有一条记录:\w{3}_\d{5}

当我将该记录检索到 java 字符串时,它的形式如下:\w{3}_\d{5}

但是,当我将该 java 字符串分配给 JavaScript 变量时,它看起来如下: w{3}_d{5} 即没有反斜杠

因此,如果我将其保存到数据库中 \\w{3}_\\d{5}

  • Java 字符串将为:\\w{3}_\\d{5}
  • 分配给 JavaScript 变量的 Java 字符串将为:\w{3}_\d{5}

总结以上内容 - 我需要一个正则表达式才能在客户端和服务器上运行,我看到的唯一解决方案是将正则表达式保存为 \\w{3}_\\d{5 } 并读取 java 端额外的反斜杠。

为什么 JavaScript 会失去反斜杠?解决这个问题的最佳方法是什么?

最佳答案

Apache Commons Lang有一个具有适合不同语言的字符串转义函数的类。该类名为 StringEscapeUtils并具有静态方法String = escapeJava(String)

<小时/>

旧版本的库有一个 escapeJavaScript 方法,但希望 escapeJava 也能正常工作。

关于javascript - 从数据库中检索正则表达式在java和javascript中是不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31067056/

相关文章:

javascript - 如何使用 jQuery 消除旧内容而不使用 Empty() 函数?

javascript - 如何在 JavaScript 中使用 Struts1 标签?

java - 提交 GET 或 POST 以在 ElasticSearch 中搜索

java - 多类匹配

java - 如何在android中执行智能字符串检查

javascript - 使用 nth-child 和 :after pseudo using jQuery 修改 css 类

javascript - 如何在 firebase 中获取对象的先前值(值)?

java - 如何获取 View 的可绘制名称

ruby-on-rails - 正则表达式忽略以下划线开头的单词或文件开头的路径

java - 在java中只拆分汉字