我怎么能不允许这些字符:
\ /“'[] {} | ~` ^&
使用javascript正则表达式模式?
答案 0 :(得分:1)
检查字符串是否包含以下字符之一:
if(str.match(/[\\\/"'\[\]{}|~`^&]/)){
alert('not valid');
}
验证整个字符串,从头到尾:
if(str.match(/^[^\\\/"'\[\]{}|~`^&]*$/)){
alert('it is ok.');
}
答案 1 :(得分:0)
仅排除那些字符(带反斜杠的前缀)
const isNotSpecial = /[^\\\/\"\'\[\]\{\}\|\~\`\^\&]/.test(myvalue);
通常排除所有特殊字符
const isNotSpecial = /[^\W]/.test(myvalue);
答案 2 :(得分:-2)
另一种解决方案是将这些特殊字符编码为正则表达式格式。
使用软件包regexp-coder
const { RegExpCoder } = require('regexp-coder');
console.log(RegExpCoder.encodeRegExp('a^\\.()[]?+*|$z'));
// Output: 'a\^\\\.\(\)\[\]\?\+\*\|\$z'