正则表达式只允许字母,空格和- 只要

时间:2016-11-18 06:41:59

标签: javascript jquery asp.net regex

我正在寻找仅允许(alphabetspace& -)的正则表达式。

尝试以下但在其中一个案例中失败

1)不允许空格和 - :^[a-zA-Z]+$ 2)不允许使用单个字符:^\S+[a-zA-Z -]+$

4 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

^[a-zA-Z\s-]+$

答案 1 :(得分:0)

使用此功能。

    var regex = new RegExp("^[a-zA-Z -]*$");

答案 2 :(得分:0)

仅尝试使用以下代码alphabets并允许-。第一次也不允许空间。这是Demo 如果您需要alphabets-space请使用此功能。 var regex = new RegExp("^[a-zA-Z \b-]+$");

 $('.onlyalphabets').on('keypress', function (e) {
    if ($(this).val() == "") {
        if (event.which === 32)
        { return false; }
        else {
            var regex = new RegExp("^[a-zA-Z\b-]+$");
            var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
            if (!regex.test(key)) {
                event.preventDefault();
                return false;
            }
        }
    }
    else {
        var regex = new RegExp("^[a-zA-Z\b-]+$");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
        if (!regex.test(key)) {
            event.preventDefault();
            return false;
        }
    }
    return true;
});

答案 3 :(得分:0)

如果您只是不想在开始时允许空格,并允许它和其后允许的其他字符,并且能够匹配1字符串,请使用

^[a-zA-Z-][a-zA-Z -]*$

请参阅regex demo

^匹配字符串起始位置,[a-zA-Z-]仅匹配字母或-作为第一个字符,[a-zA-Z -]*匹配来自允许设置的字符0+字符字符串的$结尾。

如果您想仅允许用空格/连字符分隔的单词,请使用^[A-Za-z]+(?:[ -][A-Za-z]+)*$