我正在寻找仅允许(alphabet
,space
& -
)的正则表达式。
尝试以下但在其中一个案例中失败
1)不允许空格和 - :^[a-zA-Z]+$
2)不允许使用单个字符:^\S+[a-zA-Z -]+$
答案 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]+)*$
。