JS检查字符串是否仅包含西里尔字母和空格

4

我有一些字符串,需要检查这个字符串是否符合以下要求:

a) 由3个单词组成

b) 只包含西里尔字母和空格

我的代码:

var isValid;
isValid = function(s) {
  return s && s.split(" ").length === 3 && /[а-яА-Я ]/.test(s);
};

但是这段代码并不起作用,因为isValid('a b c')返回'true'。我的错误在哪里?提前感谢!

试试这个链接 - huwence
1个回答

7

试试这个:

var isValid = function(s) {
    return s && s.split(" ").length === 3 && /^[\u0400-\u04FF ]+$/.test(s);
};

这里是有关使用Unicode字符类的快速说明。您需要正则表达式的Unicode十六进制代码。我查找了西里尔文,找到了这里:http://unicode.org/charts/PDF/U0400.pdf。西里尔字符从0x0400到0x04FF。在正则表达式中,使用\u后跟4个字符的代码:\u0400,\u04ff。将其作为字符类并开始使用。更多信息请参见:http://www.regular-expressions.info/unicode.html。 - Ty Kroll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接