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

我可以在Javascript中查找输入字段是否包含数值吗,javascript,input-field,Javascript,Input Field,我正在尝试验证一个表单字段,我是javascript新手。我一直在用!isNaN,但这似乎只检测是否绝对没有数字。例如,在下面的示例中,如果我在输入字段中输入了“Willy,Fred5”,它似乎会检测到字符串,并且不会返回false。我需要做的是检测输入字段中是否有一个数值。但似乎找不到有效的答案 function fnCheckName(strName) { strName.style.background = "#FFFFFF"; var nameChk = strName.

我正在尝试验证一个表单字段,我是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}
函数fnCheckName(strName){
strName.style.background=“#ffffffff”;
var nameChk=strName.value;
if(nameChk.indexOf('),')<0 | | nameChk==“”| | |!isNaN(nameChk){
strName.style.background=“#FBEC5D”;
返回false}
else{return true}
尝试此更改

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;
}
函数fnCheckName(strName){
strName.style.background=“#ffffffff”;
var nameChk=strName.value;
var状态=假;

对于(var i=0;i,如果输入偶数,则返回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;

        }
    }
试试这个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  

    }
}


您需要添加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”为true)

/\d/-检查任何带有数字的字符串(对于“fdslkj45”为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
  }
}
函数fnCheckName(strName){
strName.style.background=“#ffffffff”;
var nameChk=strName.value;
如果(nameChk.indexOf('),')<0 | | nameChk==“”| |!/\d/.test(nameChk)){
strName.style.background=“#FBEC5D”;
返回错误
}
否则{
返回真值
}
}

试试JavaScript中的regexp类并为其创建一个正则表达式。好笑的喜剧,falcon…链接到一个标记为重复的问题!@Jeremy,在你回答之前更正了。问题似乎不起作用。我一直收到一个错误-未捕获类型错误-未定义不是if()上的函数line.是一个全局函数,不是一个数字方法。此外,中断/返回也丢失,因此即使使用isNaN更改,如果最后一个字符不是NaN,这也只是“true”。由于缺少中断/返回,这仍然是错误的-由于循环未正确终止,状态将重置。请尝试使用值“1foo”和“bar2”由于这两个函数都包含数字,但这个函数只在一种情况下返回true。(这也是
isNaN
的一个非常奇怪的用法,尽管我相信它认为
!isNaN(x)==/\d/.test(x)
对于所有单字符字符串x..)我甚至不知道如何将其输入或它是什么?使用
eval
是“完全错误的”(如果删除它,它实际上会有等价的语义,因此
eval
在这里是完全不必要和无用的)。除此之外,这将失败并为输入返回“true”,如
=^ ^=
。我认为OP-want是“包含一个数字”的反向(真正非否定)测试形式。但是使用
/\d/
(或等效)很适合这个任务。我说不出来,问题很不清楚。如果他们想要相反的结果,那么他们可以删除。谢谢。是的,需要删除!但是很有效,谢谢。
/\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
  }
}