【发布时间】:2014-04-27 01:21:29
【问题描述】:
首先我搜索了答案,但直到现在都没有成功。
我有一个通过 POST 提交一些输入的表单,但在此之前我想在客户端确保名字和姓氏仅使用拉丁字母或西里尔字母。
到目前为止,它仅适用于拉丁字母,但我无法使用西里尔字母。 这是我现在使用的,任何帮助将不胜感激
<input id="userfnamesignup" type="text" pattern="[a-zA-Z]{3-30}"
name="user_fname" placeholder="Enter your name please" required />
【问题讨论】:
-
一些有效的西里尔名称包含非字母符号,例如“Анна-Мария”或“Иван-Асен”。这些是与您的模式不匹配的有效名字,就像“Jean-Claude”不匹配一样。
-
您的正则表达式中有语法错误。
{3-30}应该是{3,30}。在[]中添加а-я应该可以工作。如果没有,下面的答案会起作用。 -
@PhistucK
а-я会排除很多像љ这样在某些西里尔字母中有效的字母。 -
@lanzz - 正确,关键是当 al1en 尝试任何操作时,语法错误可能会阻止代码工作。在 UNICODE 表中搜索第一个和最后一个字符将只针对西里尔字符(而不是标点符号,如您所述)。