否定JavaScript Regex模式



我有以下以下等级模式: [^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
}

相关内容

  • 没有找到相关文章

最新更新