我想在Javascript中为ISO-8859-1字符编写一个字符串验证器(或regex)。
如果字符串具有任何非ISO-8859-1字符,则验证者必须返回false
,否则true
。 E.g:
str = "abcÂÃ";
validator(str); // should return true;
str = "a 你 好";
validator(str); // should return false;
str ="你 好";
validator(str); // should return false;
我试过使用以下正则表达式,但它不能完美运行。
var regex = /^[\u0000-\u00ff]+/g;
var res = regex.test(value);
答案 0 :(得分:2)
如果你想在任何非ISO-8859-1字符存在时返回false,你可以使用double-negate:
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);
}
它使用!/[^\u0000-\u00ff]/g.test(str)
,因为它检查是否存在任何非字符,如果没有,则返回true
,否则返回false
。