我正在尝试验证表单字段并且是javascript的新手。我一直在使用!isNaN但这似乎只能检测出是否绝对没有数字。例如,在下面的例子中,如果我有'Willy,Fred5'进入输入字段,它似乎检测到字符串并且不返回false。我需要做的是检测输入字段中是否有一个数值。但似乎无法找到有效的答案。
function fnCheckName(strName) {
strName.style.background = "#FFFFFF";
var nameChk = strName.value;
if (nameChk.indexOf(', ') < 0 || nameChk == "" || !isNaN(nameChk){
strName.style.background = "#FBEC5D";
return false}
else {return true}
答案 0 :(得分:2)
您需要添加RegExp:
function fnCheckName(strName) {
strName.style.background = "#FFFFFF";
var nameChk = strName.value;
if (/\d/.test(nameChk)){
strName.style.background = "#FBEC5D";
return false
}
else {return true}
/ ^ [a-zA-Z] + $ / - 仅检查字母(“fdsfjklr”为true)
/ ^([^ 0-9] *)$ / - 仅检查数字(“4321”为真)
/ \ d / - 检查任何带数字的字符串(对于“fdslkj45”为真)
答案 1 :(得分:2)
/\d/.test('foo5')
outputs: true
/\d/.test('foo')
outputs: false
/\d/.test('5')
outputs: true
因此,鉴于这些输入和输出,我认为您修改后的代码将是:
function fnCheckName(strName) {
strName.style.background = "#FFFFFF";
var nameChk = strName.value;
if (nameChk.indexOf(', ') < 0 || nameChk == "" || !/\d/.test(nameChk)) {
strName.style.background = "#FBEC5D";
return false
}
else {
return true
}
}
答案 2 :(得分:0)
试试这个Danrex
function fnCheckName(strName) {
strName.style.background = "#FFFFFF";
var nameChk = strName.value;
var regNew = new RegExp(/^([^0-9]*)$/);
if (regNew.test(nameChk)) {//If true i.e. no digit is in the string
} else {//If false i.e. digit is in the string
}
}
或
function fnCheckName(strName) {
strName.style.background = "#FFFFFF";
var nameChk = strName.value;
var regNew = new RegExp(/^([^0-9]*)$/);
return (regNew.test(nameChk));
};
答案 3 :(得分:-1)
尝试此更改,
function fnCheckName(strName) {
strName.style.background = "#FFFFFF";
var nameChk = strName.value;
var status = false;
for(var i=0;i<nameChk.length;i++){
if(isNan(nameChk[i])==false)
status = true;
else
status = false;
}
return status;
}
答案 4 :(得分:-1)
如果输入一个数字,则返回false,否则返回true
eval('/^[a-zA-Z]+$/').test('sfjd');
编辑
function fnCheckName(strName) {
if( eval('/^[a-zA-Z]+$/').test(strName))
{
// this name not contains numbers
// change background or every things that you want
return true;
}
else
{
// this name has number or numbers
// change background or every things that you want
return false;
}
}