否定Javascript正则表达式模式
我有以下正则表达式模式:否定Javascript正则表达式模式,javascript,html,angularjs,regex,ng-tags-input,Javascript,Html,Angularjs,Regex,Ng Tags Input,我有以下正则表达式模式:[^\u0001-\u00FF]。这样,我就验证了一个不包含无效字符(如“€”等)的用户输入 var utfRegex: RegExp = new RegExp('[^\u0001-\u00FF]'); return !utfRegex.test(userInput); 现在我使用标签输入组件,需要验证用户输入。所以我需要通过一个正则表达式,它反过来工作 改变这个正则表达式的最简单方法是什么?您的正则表达式只是将符号格式作为字符串。因此,必须将它们转换为特殊字符 var
[^\u0001-\u00FF]
。这样,我就验证了一个不包含无效字符(如“€”等)的用户输入
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
}
仅允许有效字符:
要确保
userInput
仅包含有效字符(范围ASCII 0-255),regex:
和^
作为起始和结束锚点$
匹配属于ASCII范围0-255的一个或多个字符[\u0001-\u00FF]+
!utfRegex.test
到utfRegex.test
代码:
仅允许无效字符:
要确保输入仅包含无效字符
和^
作为起始和结束锚点$
匹配一个或多个不属于ASCII范围0-255的字符[^\u0001-\u00FF]+
!utfRegex.test
至utfRegex.test
代码:
删除否定
^
即[\u0001-\u00FF]
似乎不起作用。一旦我这样做,我就可以输入所有内容:/你的目标是什么?要确保用户输入
仅包含无效字符,如€
?或者反过来?要确保用户输入
仅包含有效字符,请尝试:^[\u0001-\u00FF]+$
并更改!utfRegex.test
到utfRegex.test
。要确保它只包含无效字符,请使用:^[^\u0001-\u00FF]+$
并更改!utfRegex.test
至utfRegex.test
`^[\u0001-\u00FF]+$`
var utfRegex: RegExp = new RegExp('^[\u0001-\u00FF]+$');
return utfRegex.test(userInput);
`^[^\u0001-\u00FF]+$`
var utfRegex: RegExp = new RegExp('^[^\u0001-\u00FF]+$');
return utfRegex.test(userInput);