使用正则表达式进行CQ5文本字段验证

时间:2016-01-05 09:06:20

标签: regex extjs cq5

我有一个带文本字段的简单CQ对话框。作者以某种方式设法将非法字符粘贴到其中,最后两次是从PowerPoint文件复制的垂直制表符(VT)。 我玩了一些正则表达式并提出以下内容以排除SPACE和DEL之下的任何内容:

/^[^\0-\x1F\x7F]*$/

可悲的是我无法真正测试垂直标签,因为我无法在regex101上输入此字符。所以我尝试使用TAB,这看起来很有效:https://regex101.com/r/yH0lN5/1

但是如果我在regex的{​​{1}}属性中使用它,无论我输入什么,验证都会失败。知道我做错了吗?

白名单不是一个选项,因为我需要支持像中文这样的Unicode字符。

1 个答案:

答案 0 :(得分:1)

你应该加倍反斜杠以确保它们被正则表达式引擎视为文字反斜杠。

此外,我建议使用一致的表示法,并将\0替换为\x00

regex="/^[^\\x00-\\x1F\\x7F]*$/"

这个正则表达式只匹配包含零个或多个字符的字符串(由于*)而不是(由于使用了否定的字符类[^...])从NUL到US字符的字符串( [\x00-\x1F])和DEL字符(\x7F):

enter image description here