【问题标题】:Regular expression that validates only alphabetical characters仅验证字母字符的正则表达式
【发布时间】:2017-01-05 00:08:47
【问题描述】:

我有这个功能:

function validate(str1,str2,str3){
  var alph=/^[A-Za-zÑñ]*$/;

  if((str1.match(alph) || str2.match(alph) || str3.match(alph))){
    return true;    
  }else{
    return false;
  }
}

如果我在输入文本中输入任何字母字符,它会返回 true。但是,当我输入任何数字时,它也会返回 true。

我只需要接受字母字符和空格,仅此而已。

谁能帮帮我?

【问题讨论】:

  • 请注意,条件表达式由|| OR 组成。这就是你想要的吗?
  • 如果三个字符串中的至少一个有效,则该函数返回 true。这是故意的吗?
  • 否则你可以使用一个连接的字符串并验证它

标签: javascript regex


【解决方案1】:

如果您的函数应该返回 false 如果传递的 任何 字符串无效,则您需要一个逻辑 AND:

return str1.match(alph) && str2.match(alph) && str3.match(alph);

另外,如果您不使用匹配结果,您可以使用 alph.test() 代替:

return alph.test(str1) && alph.test(str2) && alph.test(str3);

【讨论】:

  • 当我使用测试方法和正则表达式 ^[A-Za-z\s]*$ 时它可以工作。谢谢!
【解决方案2】:

试试这个:

if((str1.match(alph) && str2.match(alph) && str3.match(alph)))

【讨论】:

  • 我试试这个,它返回 false
  • 当然,这是正确的条件。使用测试方法完美。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-08-29
  • 2013-08-04
  • 2011-12-26
  • 2014-12-30
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
  • 2015-07-04
相关资源
最近更新 更多