我有以下以下等级模式: [^u0001-u00FF]
。因此,我验证一个用户输入不包含"€"等无效字符。
var utfRegex: RegExp = new RegExp('[^u0001-u00FF]');
return !utfRegex.test(userInput);
现在,我使用标签输入组件,需要验证用户输入。因此,我需要通过以相反方式工作的正则态度。
转时最简单的方法是什么?
仅允许有效字符:
确保userInput
仅包含仅有效字符(range ascii 0-255(,以至于:
`^[u0001-u00FF]+$`
-
^
和$
作为开始和结束锚 -
[u0001-u00FF]+
匹配属于ASCII范围0-255的一个或多个字符。
还将!utfRegex.test
更改为utfRegex.test
。
代码:
var utfRegex: RegExp = new RegExp('^[u0001-u00FF]+$');
return utfRegex.test(userInput);
仅允许无效字符:
确保输入包含仅无效字符,
`^[^u0001-u00FF]+$`
-
^
和$
作为开始和结束锚 -
[^u0001-u00FF]+
匹配一个或多个字符不是属于ASCII范围0-255。
也不要忘记将!utfRegex.test
更改为utfRegex.test
代码:
var utfRegex: RegExp = new RegExp('^[^u0001-u00FF]+$');
return utfRegex.test(userInput);
您的正则表达式只是以符号格式为字符串。因此,您必须将它们转换为特殊角色。
var str = unescape(encodeURIComponent('(?!u0001-u00FF)'));
var utfRegex = new RegExp(str);
var x = utfRegex.test(userInput);
if(x) { // you can add extra condition if you want there should be an input userInput.length > 0
// no invalid characters
} else {
// contains invalid characters
}