我有以下正则表达式:[^\u0001-\u00FF]
。有了它,我验证用户输入不包含无效字符,如"€"等等。
var utfRegex: RegExp = new RegExp('[^\u0001-\u00FF]');
return !utfRegex.test(userInput);
现在我使用tags-input组件并需要验证用户输入。所以我需要通过一个正则表达式的正则表达式。
将这个正则表达式转变为最简单的方法是什么?
答案 0 :(得分:1)
仅允许有效字符:
要确保userInput
仅包含有效字符(范围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);
答案 1 :(得分:0)
您的正则表达式只是将符号格式作为字符串。所以你必须将它们转换为特殊字符。
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
}