使用正则表达式模式来清理HTML输出并删除任何特殊字符。我的想法是编写一个正则表达式,列出我要保留的所有字符并删除其他所有字符,而不是尝试考虑模式中的所有特殊字符。
我目前的模式:
/[^0-9A-Za-z,=": ?'`&;>|<!.\-\/]/
它工作得很好,除了它是删除我想要保留的括号()。添加到我的模式时,我似乎无法正确地逃避它们。这样做的最佳方式是什么?
答案 0 :(得分:4)
/[^0-9A-Za-z,=": ?'`&;>|<!.\-\/()]/
内部范围块“[]”,适用不同的转义规则。
答案 1 :(得分:2)
最好的方法是使用Rails内置的sanitize方法。
答案 2 :(得分:0)
str.delete( %q{^a-zA-Z1-9,=:"`&;>|<!.-/ ()'} )
# or with another delimiter (*):
str.delete( %q*^a-zA-Z1-9,=:"`&;>|<!.-/ ()'* )
String.delete将一个或多个字符串作为参数(并使用'^'取消它们,就像正则表达式一样)。使用%q {string}语法,您不必担心转义。