我需要检查名称字段是否仅为希伯来字母[א-ת],现在该功能正常工作,但是如果我输入来自两种不同语言的字母(如“ abcdאבג”),它将忽略并返回true,我需要它返回false,谢谢你
function justHeb(str){
ok = true;
for (var i=0;i<str.length&&ok;i++)
{
if (!str[i].match(/[א-ת]/))
{
ok=false;
return false;
}
else return true;
}
}
function firstName(str){
if(justHeb(document.getElementById("firstname").value)){
return true;
}
else {
return false;
}
}
function checkAll(){
if(firstName()){
alert("true");
}
else
alert("false");
}
你需要移动return true;
到外面的for
循环。否则,您的代码将接受任何以希伯来语字符开头的字符串。
function justHeb(str){
var ok = true;
for (var i=0;i<str.length&&ok;i++)
{
if (!str[i].match(/[א-ת]/))
{
ok=false;
return false;
}
}
return true;
}
现在,通过让正则表达式引擎为您完成这项工作,您可以进一步简化操作:
function justHeb(str) {
return /^[א-ת]*$/.test(str);
}
前导^
意味着匹配必须从字符串的开头开始。该*
说接受该范围内的零个或多个字符的序列,最后$
说,比赛必须在字符串的结束而终止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句