我想为 Javascript 中的 ISO-8859-1 字符编写一个字符串验证器(或正则表达式)。
如果字符串有任何非 ISO-8859-1 字符,则验证器必须返回false否则true。例如:
str = "abcÂÃ";
validator(str); // should return true;
str = "a ? ?";
validator(str); // should return false;
str ="? ?";
validator(str); // should return false;
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下正则表达式,但效果不佳。
var regex = /^[\u0000-\u00ff]+/g;
var res = regex.test(value);
Run Code Online (Sandbox Code Playgroud)
由于您想在存在任何非 ISO-8859-1 字符时返回 false ,因此您可以使用双重否定:
var str = "abcÂÃ";
console.log(validator(str)); // should return true;
str = "a ? ?";
console.log(validator(str)); // should return false;
str = "? ?";
console.log(validator(str)); // should return false;
str = "abc";
console.log(validator(str)); // should return true;
str = "?";
console.log(validator(str)); // should return false;
function validator(str) {
return !/[^\u0000-\u00ff]/g.test(str);
}Run Code Online (Sandbox Code Playgroud)
它使用!/[^\u0000-\u00ff]/g.test(str),因为它检查是否有任何非字符,如果没有,则返回true,否则返回false。