我的数据库中有一条记录:\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/