我正在尝试为我的用户简化特定正则表达式的输入。正则表达式的一个简单示例可能是
\b(C|C\+\+|Java)\b
我现在通过将原始字符串输入<input type="text">
字段,让用户可以选择在正则表达式的末尾附加另一个分支。分支将按字面解释,所以我需要逃避它。我使用https://stackoverflow.com/a/2593661/785663来RegExp.quote
来执行此操作。然后我将完整的正则表达式存储在数据库中。
现在,当我从数据库中检索正则表达式并将其拆分并向用户显示分支时,我需要再次删除所有转义字符。是否有一些预先制作的功能,还是我需要自己动手?
是的,我知道我应该用要搜索的字符串列表替换它。但这只是较大(基于正则表达式)图片的一部分。
答案 0 :(得分:0)
最佳解决方案是更改您的设计:存储未转义的正则表达式,然后在实际使用时将其转义。这样你就不用担心这种混乱的业务一直在来回转换。
如果你经常使用这个正则表达式并且担心必须一直逃避它的开销,那么将两者存储为非转义和转义版本。每当用户进行更改时都会更新。
P.S。允许用户输入的正则表达式可能会使您的网站vulnerable to attack。 (更新:虽然在这种情况下它不太可能成为问题,因为你只允许使用文字字符串)