正则表达式给出错误输出

时间:2012-09-06 11:28:35

标签: javascript regex

我正在使用正则表达式来验证字符串是否只包含字母和空格。正则表达式定义为

var regex = /^[A-Za-z ]/;

但即使我用字符串“X”测试它,它也会给出真实的结果。

这里有什么错误?

4 个答案:

答案 0 :(得分:1)

^[A-Za-z ]只匹配一个字符。而^表示字符串的开头。要完成您想要的任务,请使用:

+ - 这意味着匹配一个或多个。或者,您可以使用:

* - 表示匹配零或更多。

但我认为你最好用第一个(+)。另一件事是,匹配整个字符串。这意味着您必须从第一个字符到最后一个字符进行搜索。

$ - 这意味着匹配结束。

您的代码应该是这样的:

var regex = /^[A-Za-z ]+$/;

答案 1 :(得分:0)

你的正则表达式匹配输入的第一个字母,因此返回true ..你需要添加$以确保只匹配从开头(^)到结尾的完整字符串($)。

var regex = /^[A-Za-z ]*$/;

答案 2 :(得分:0)

尝试使用:

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

答案 3 :(得分:0)

这是正确的方法:

/^[A-Za-z ]*$/

Regex Demo