如何使用Javascript检查字符串是否有任何非ISO-8859-1字符?

时间:2015-09-29 18:06:22

标签: javascript regex

我想在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);

1 个答案:

答案 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