我在 NodeJS 项目中使用 elasticsearch,它在将 Lucene 关键字之一输入到搜索框中时中断。我正在寻找一个简单的实现来转义它们的特殊字符。正则表达式是最好的方法吗?我现在一直在摆弄正则表达式,感觉好像其他人可能已经完成了这个过程。
最佳答案
只是需要摆弄更多。
var escaped = query.replace(/([\!\*\+\&\|\(\)\[\]\{\}\^\~\?\:\"])/g, "\\$1");
全局替换 lucene 会用其转义版本大喊大叫的所有字符实例。
关于javascript - 使用 Javascript Regex 转义 Lucene 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26431958/