【问题标题】:Javascript Validation - Letters and SpaceJavascript 验证 - 字母和空格
【发布时间】:2014-03-09 01:07:08
【问题描述】:

美好的一天。我对 Javascript 很陌生。我有这个表达式:var firstname = /^[A-Za-z]+$/; 来验证表单中的名字。但是,此代码仅允许用户输入单个名称而没有任何空格。如果用户有两个或多个名字呢?

我想知道如何验证字母和空格。我在 Stackoverflow 中搜索过类似的问题,但没有一个答案对我有用。

我已经尝试过我在这里找到的这些代码:/^[A-Za-z ]$/ 或这个/^[a-zA-Z\s]*$/,但这些都不起作用。尽管如此,每当我在名字字段中输入两个名字时,我的警报消息都会提示我输入了一个无效字符。

谢谢。

【问题讨论】:

  • 你能发布你的整个代码,或者至少是你使用正则表达式的具体代码吗?
  • 这里是:function lettersOnly(elem, helperMsg) { var firstname = /^[a-zA-Z]+$/; if(elem.value.match(firstname)){return true;} else{alert(helperMsg); elem.focus(); return false;} }

标签: javascript regex validation


【解决方案1】:

您发布的每个帖子都有问题:

  • var firstname = /^[A-Za-z]+$/; 应该是 var firstname = /^[A-Za-z ]+$/;添加空格
  • /^[A-Za-z ]$/ 应该是 /^[A-Za-z ]+$/添加了 +
  • /^[a-zA-Z\s]*$/ 是一个问题,因为我从其他示例中假设您至少需要一个字母,所以它应该是 /^[a-zA-Z\s]+$/(*用 + 替换 *

【讨论】:

  • 感谢您的回答。我只是尝试用您建议的代码替换该值,但仍然提示我输入了无效字符。
  • 那是因为您的其余代码无效。你永远不会定义fn
  • 哦,对不起。您可能已经看到我对 clenfort 的回复。我只是忘记在这里将“fn”编辑为“firstname”,以便更容易理解。无论如何,我的原始代码是function lettersOnly(elem, helperMsg) { var fn = /^[a-zA-Z]+$/; if(elem.value.match(fn)){return true;} else{alert(helperMsg); elem.focus(); return false;} },我已经尝试过你建议的方法,但它们没有用。不过谢谢你的帮助。
  • 它工作正常:jsfiddle.net/cMDbb 尝试任何被注释掉的函数调用,它们按预期工作。 (当然,为了方便演示,我去掉了.value部分)
  • 谢谢先生。我只是又试了一遍。也许我的整个代码中还有其他问题导致它不起作用。但我无法发现错误。我正在做一份简单的在线注册表单。
猜你喜欢
  • 2013-02-27
  • 2013-11-04
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 2013-03-15
  • 2016-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多