【发布时间】:2014-11-04 09:05:53
【问题描述】:
我想验证 html 页面中的文本输入字段以仅接受西里尔字母。我使用正则表达式在 JavaScript 中编写了验证代码,如下所示:
var namevalue = document.getElementById("name")
var letters = /^[А-Яа-я]+$/;
if (namevalue.matches(letters)) {
alert("Accepted");
}
else {
alert("Enter only cyrillic letters");
}
此代码适用于所有西里尔字母,除了Ё ё
【问题讨论】:
-
试试这个:
var letters = /^[А-Яа-яёЁ]+$/; -
@MarkZucchini:这不是字符类的工作方式。删除
| -
“仅西里尔字母”要求含糊不清,因为有很多语言使用西里尔字母的子集,并且在一种语言中有效的字符在另一种语言中不存在。您要匹配哪种语言?
-
是的。 ё 不工作的问题是因为它超出了 A-Я 范围。 A-Я 是一个基本的西里尔字母 [0430-044F],但 ё 不在那个基本字母表中。它是西里尔文扩展名 [0400-045F]。因此,javascript 正则表达式不是通过字母本身进行比较,而是通过其字符码进行比较,所以 ё 超出了范围。
标签: javascript html regex