Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript提示的仅限正则表达式字母验证_Javascript_Regex_If Statement_Prompt - Fatal编程技术网

javascript提示的仅限正则表达式字母验证

javascript提示的仅限正则表达式字母验证,javascript,regex,if-statement,prompt,Javascript,Regex,If Statement,Prompt,我有一个页面,其中弹出一个提示窗口,提示用户输入他们的名字和姓氏。我正在尝试为提示窗口编写验证。点击cancel或留空都可以正常工作,但我坚持的是确保用户只输入字母。下面是我所拥有的 var alphaExp = /^[0-9a-zA-Z]+$/; var name=prompt("Enter your first and last name please.",""); if (name==null || name=="") { alert("First and last name m

我有一个页面,其中弹出一个提示窗口,提示用户输入他们的名字和姓氏。我正在尝试为提示窗口编写验证。点击cancel或留空都可以正常工作,但我坚持的是确保用户只输入字母。下面是我所拥有的

var alphaExp = /^[0-9a-zA-Z]+$/;

var name=prompt("Enter your first and last name please.","");
if (name==null || name=="")
  {
  alert("First and last name must be filled out!");
  location.reload(true);
  }
else if (name==alphaExp)
  {
  alert("Name must contain letters only!")
  location.reload(true);
  }
如果我点击cancel或留空,我会被提醒必须填写字段并刷新页面,但如果我输入一个数字或特殊字符,它会接受它并将我带到页面,而它不应该这样做

我试着换衣服

else if (name==alphaExp)

但这似乎给了我想要的相反效果,我什么也不接受

我错过了什么


另外,我必须编写if语句以确保用户输入至少两个名称,这又会怎样呢?i、 e.必须为1个字母+空格+1个字母。建议?

您必须测试字符串是否与正则表达式匹配,而不仅仅是它是否相等。而不是

name==alphaExp
你应该使用

name.match(alphaExp)
或者!负片的name.matchalphaExp

如果你想强制人们输入两个名字,你可以使用

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

我删除了0-9,因为您可能不需要数字。

您必须测试字符串是否与正则表达式匹配,而不仅仅是它是否相等。而不是

name==alphaExp
你应该使用

name.match(alphaExp)
或者!负片的name.matchalphaExp

如果你想强制人们输入两个名字,你可以使用

/^[a-zA-Z]+ [a-zA-Z]+$/
我删除了0-9,因为您可能不需要数字。

您需要

else if (!name.match(alphaExp))
但是请注意,在alphaExp中,您允许数字/数字,这与您只需要字母的声明相反。如果您确实只想要字母,请按以下方式更改alphaExp:

var alphaExp = /^[a-zA-Z]+$/;
不过,也只是一个建议,请注意,许多姓氏和一些名字使用连字符和单引号。您可能还希望允许使用这些字符

至于您关于强制输入两个名字“First Lastname”的问题,您可以使用如下方式:

var alphaExp = /^[a-zA-Z]+ [a-zA-Z]+$/;
您的修订代码现在是:

你需要

else if (!name.match(alphaExp))
但是请注意,在alphaExp中,您允许数字/数字,这与您只需要字母的声明相反。如果您确实只想要字母,请按以下方式更改alphaExp:

var alphaExp = /^[a-zA-Z]+$/;
不过,也只是一个建议,请注意,许多姓氏和一些名字使用连字符和单引号。您可能还希望允许使用这些字符

至于您关于强制输入两个名字“First Lastname”的问题,您可以使用如下方式:

var alphaExp = /^[a-zA-Z]+ [a-zA-Z]+$/;
您的修订代码现在是:


要测试RegExp,可以使用RegExp方法test、exec或match。对于您的情况,测试将是最合适和最有效的:

if (!/^[a-zA-Z]+$/.test(name)) { alert("error"); }
要匹配至少两个名称,请使用以下RegExp:

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

请注意\-因为有些人有连字符的名称,并且第三个括号中的空格设置为允许两个以上的名称,但不允许人们输入一个名称后跟空格。

要测试RegExp,您可以使用RegExp方法test、exec或match。对于您的情况,测试将是最合适和最有效的:

if (!/^[a-zA-Z]+$/.test(name)) { alert("error"); }
要匹配至少两个名称,请使用以下RegExp:

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

请注意\-因为有些人有连字符的名字,第三个括号中的空格设置为允许两个以上的名字,但不允许人们输入一个名字后加空格。

只接受小写或大写字母,无论我们是否可以使用

    var ffirst_name=/^[a-zA-Z]+$/
    if (!ffirst_name.test($first_name)) {
            me('input.first_name').after('<span class="err">Please input a valid name!</span>').focus();
            return false;               
    }

只接受小写或大写字母,无论我们是否可以使用

    var ffirst_name=/^[a-zA-Z]+$/
    if (!ffirst_name.test($first_name)) {
            me('input.first_name').after('<span class="err">Please input a valid name!</span>').focus();
            return false;               
    }

哦,太好了,还有更多。这些都不是真的。无论如何,[A-Z]是一个非常响亮的反模式;像现在这样“有时总是错的”:威廉Mᶜ金利、马丁·奥马利、亨利八世国王、弗朗索瓦·密特朗、费德里科·佩尼亚、尼古拉·齐奥埃斯库、阿尔法尔·阿恩弗杰尔·比亚马森和多米尼克·加斯顿·安德烈·斯特劳斯·卡恩都在嘲笑你那微不足道的破雷格克斯!伟大的样品!也不要忘记人们使用的所有阿拉伯语、格鲁吉亚语、西里尔语、日语、汉语和所有其他字母……哦,太好了,还有更多。这些都不是真的。无论如何,[A-Z]是一个非常响亮的反模式;像现在这样“有时总是错的”:威廉Mᶜ金利、马丁·奥马利、亨利八世国王、弗朗索瓦·密特朗、费德里科·佩尼亚、尼古拉·齐奥埃斯库、阿尔法尔·阿恩弗杰尔·比亚马森和多米尼克·加斯顿·安德烈·斯特劳斯·卡恩都在嘲笑你那微不足道的破雷格克斯!伟大的样品!也不要忘记人们使用的所有阿拉伯语、格鲁吉亚语、西里尔语、日语、汉语和所有其他字母表。。。