正则表达式不是拉丁字母 - 混合输入失败

时间:2017-01-15 15:57:39

标签: javascript regex validation

我需要阻止用户使用与拉丁语(又名英语)不同的字母输入文字。

我正在使用基于正则表达式的以下函数,但我有一些问题:

  1. 如果输入为空,则验证失败
  2. 如果输入混合为aaaaффффф
  3. ,则验证通过

    我使用一个简单的if来解决第一点,无论如何,如果正则表达式也会照顾这个案例会很好 第二点是我更关心的事情。

    function validate_latin(v){
        var regex = new RegExp("[\u0000-\u007F\u0080-\u00FF]");
        if (v != '') {
            return regex.test(v);
        }
        return true;
    }
    

    P.S。 我用谷歌搜索并发现了其他类似的问题,但没有一个是完整的或涵盖这个场景

1 个答案:

答案 0 :(得分:0)

如果您的拉丁子模式适合您,解决方案很简单。 ^$锚点会阻止部分匹配(整个字符串/行必须匹配),+,这意味着一个或多个'不允许空字符串:

/^[\u0000-\u007F\u0080-\u00FF]+$/