0

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

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

我现在通过将原始字符串输入到<input type="text">字段中,为用户提供在正则表达式末尾附加另一个分支的选项。分支将按字面意思解释,所以我需要转义它。我已经使用https://stackoverflow.com/a/2593661/785663RegExp.quote做到这一点。然后我将完整的正则表达式存储在数据库中。

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

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

4

1 回答 1

0

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

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

ps 允许用户输入的正则表达式可能会使您的站点容易受到攻击(更新:虽然在这种情况下它不太可能成为问题,因为您只允许文字字符串)

于 2013-02-12T09:10:34.253 回答