如何从RegEx模式中删除转义?

时间:2013-02-12 08:42:46

标签: javascript regex

我正在尝试为我的用户简化特定正则表达式的输入。正则表达式的一个简单示例可能是

\b(C|C\+\+|Java)\b

我现在通过将原始字符串输入<input type="text">字段,让用户可以选择在正则表达式的末尾附加另一个分支。分支将按字面解释,所以我需要逃避它。我使用https://stackoverflow.com/a/2593661/785663RegExp.quote来执行此操作。然后我将完整的正则表达式存储在数据库中。

现在,当我从数据库中检索正则表达式并将其拆分并向用户显示分支时,我需要再次删除所有转义字符。是否有一些预先制作的功能,还是我需要自己动手?

是的,我知道我应该用要搜索的字符串列表替换它。但这只是较大(基于正则表达式)图片的一部分。

1 个答案:

答案 0 :(得分:0)

最佳解决方案是更改您的设计:存储未转义的正则表达式,然后在实际使用时将其转义。这样你就不用担心这种混乱的业务一直在来回转换。

如果你经常使用这个正则表达式并且担心必须一直逃避它的开销,那么将两者存储为非转义和转义版本。每当用户进行更改时都会更新。

P.S。允许用户输入的正则表达式可能会使您的网站vulnerable to attack(更新:虽然在这种情况下它不太可能成为问题,因为你只允许使用文字字符串)