Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
否定Javascript正则表达式模式_Javascript_Html_Angularjs_Regex_Ng Tags Input - Fatal编程技术网

否定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:

  • ^
    $
    作为起始和结束锚点
  • [\u0001-\u00FF]+
    匹配属于ASCII范围0-255的一个或多个字符
同时更改
!utfRegex.test
utfRegex.test

代码:

仅允许无效字符:

要确保输入仅包含无效字符

  • ^
    $
    作为起始和结束锚点
  • [^\u0001-\u00FF]+
    匹配一个或多个不属于ASCII范围0-255的字符
也不要忘记更改
!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);