2013-05-17 56 views
0

我有这样的功能:是仅验证字母字符正则表达式

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。

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

任何人都可以帮助我吗?

+2

请注意,条件表达式由'||'OR组成。那是你要的吗? – nhahtdh

+0

如果三个字符串中的至少一个有效,则该函数返回true。这是打算吗? – JJJ

+0

否则,您可以使用一个连接字符串并验证 –

回答

4

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

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

此外,您可以替代,如果你不使用匹配的效果,请使用alph.test()

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

它适用于我使用测试方法和正则表达式^ [A-Za-z \ s] * $。谢谢! – Angel

1

试试这个:

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

我试试这个,它返回false – Angel

+0

当然,这是正确的条件。使用测试方法的作品完美。谢谢! – Angel

相关问题