我可以在Javascript中找到输入字段是否包含数值

时间:2014-05-21 04:04:55

标签: javascript input-field

我正在尝试验证表单字段并且是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}

5 个答案:

答案 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;

        }
    }