正则表达式在Javascript上允许空格
我试图验证一个表单字段,我需要这个字段只允许字母和空格,但是如果我在表单中写了一个空格,那么这个字段没有被验证,什么是允许写空格的正则表达式正则表达式在Javascript上允许空格,javascript,regex,Javascript,Regex,我试图验证一个表单字段,我需要这个字段只允许字母和空格,但是如果我在表单中写了一个空格,那么这个字段没有被验证,什么是允许写空格的正则表达式 function isCharacter(element, message){ var alphaExp = /^[a-zA-Z]\s+$/; if(element.value.match(alphaExp)) { return true; } else { alert(message);
function isCharacter(element, message){
var alphaExp = /^[a-zA-Z]\s+$/;
if(element.value.match(alphaExp)) {
return true;
} else {
alert(message);
return false;
}
}
可以使用
html5模式
轻松处理
可以使用
html5模式
轻松处理
问题在于您的正则表达式,您必须将\s
放入[]
中才能实现它
var alphaExp = /^[a-zA-Z\s]+$/;
问题在于您的正则表达式,您必须将\s
放入[]
中才能实现它
var alphaExp = /^[a-zA-Z\s]+$/;
您可以强制将第一个字符设置为A标签,然后将字母或空格设置为A标签
/^[a-zA-Z][a-zA-Z\s]+$/
这样可以确保输入字段不单独包含空格
"asdf asdf".match(/^[a-zA-Z][a-zA-Z\s]+$/)
=> True
" ".match(/^[a-zA-Z][a-zA-Z\s]+$/)
=> False
您可以强制将第一个字符设置为A标签,然后将字母或空格设置为A标签
/^[a-zA-Z][a-zA-Z\s]+$/
这样可以确保输入字段不单独包含空格
"asdf asdf".match(/^[a-zA-Z][a-zA-Z\s]+$/)
=> True
" ".match(/^[a-zA-Z][a-zA-Z\s]+$/)
=> False
使用\s*
代替\s+
两侧的[…]
\s+
表示字符串末尾的一个或多个空格。或者最好将其写入[…]
中,否则它将只接受单个字符和一个或多个空格。您的+
量词只影响\s
,而不影响[a-zA-Z]
。因此,您的模式与后跟任意数量空格的字符相匹配。请使用\s*
而不是\s+
两侧的[…]
\s+
表示字符串末尾的一个或多个空格。或者最好将其写入[…]
中,否则它将只接受单个字符和一个或多个空格。您的+
量词只影响\s
,而不影响[a-zA-Z]
。因此,您的模式匹配一个后跟任意数量空格的字符。这并不能真正解释表达式现在有什么问题。这也不能真正解释表达式现在有什么问题。在审阅队列中:我可以请求您在您的答案周围添加一些上下文吗。只有代码的答案很难理解。如果你能在你的帖子中添加更多的信息,这将对提问者和未来的读者都有帮助。只有代码的答案很难理解。如果你能在你的文章中添加更多的信息,这将有助于询问者和未来的读者。