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