【问题标题】:Javascript regex alphabetic with few international charactersJavascript 正则表达式字母,国际字符很少
【发布时间】:2010-07-18 22:23:40
【问题描述】:

我需要一个 javascript 函数来验证字母输入,其中包含一些来自意大利语的额外字符,即:àèéìòóù

我之前看到过一个正则表达式,比如:

[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]

这些代码的名称是什么?在哪里可以找到正确的值?
我想将这些用于以下功能:

function val_alpha_it(str) {
    var re = /[^A-Za-z]/
    return re.test(str);                
}

【问题讨论】:

  • 忘了告诉.. 我有我的

标签: regex unicode


【解决方案1】:

这是一个关于正则表达式中 Unicode 的好教程: http://www.regular-expressions.info/unicode.html

如您所述,JavaScript 仅支持 \xFFFF 样式语法,并且该页面列出了各种字符范围。

如果您需要特定字符,可以使用 Windows 上的字符映射来查找 Unicode 字符代码(在左下角查找 U+FFFF,并更改为上述语法)。

【讨论】:

    【解决方案2】:

    如果编码适合您的脚本,您可以将字符放在常规表达式中的否定集中:

    function val_alpha_it(str) {
      return /[^A-Za-zàèéìòóù]/.test(str);
    }
    

    如果您需要使用字符代码指定字符,则这些是 unicode 代码点。您可以在Unicode character set 中查找它们。例如,字符 à 的字符代码为 00E0,因此您将其写为 \u00E0。因此,使用字符代码转义,代码将是:

    function val_alpha_it(str) {
      return /[^A-Za-z\u00E0\u00E8\u00E9\u00EC\u00F2\u00F3\u00F9]/.test(str);
    }
    

    【讨论】:

    • 你确定这有效吗?在regular-expressions.info上,它对JS说:不支持Unicode,除了用\uFFFF匹配单个字符(我自己没有测试过,这就是我问的原因)。
    • @Felix:它至少在某些浏览器中可以工作,比如 Firefox,但你可能是对的,没有全球支持,所以使用字符代码会更安全。
    猜你喜欢
    • 1970-01-01
    • 2011-07-15
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多