2010-12-04 78 views
0

嗨,任何人都可以通过给javascript代码验证用户名文本框来帮助我,文本框不应该包含数字,它只能包含一个字符。javascript验证

回答

0

方法1isNaN

addEvent(document.getElementById('myForm'), 'submit', function() { 
    var val = document.getElementById('myInput').value; 
    if (isNaN(val) || val.indexOf('.') !== val.lastIndexOf('.') || val.split('.')[1].length > 2) { 
     alert('myInput can only contain numbers!'); 
    } 
}); 

方法2:正则表达式

addEvent(document.getElementById('myForm'), 'submit', function() { 
    var val = document.getElementById('myInput').value; 
    if (!/^\d+\.?\d{0,2}$/.test(val) || val.charAt(-1) == '.') { 
     alert('myInput can only contain numbers!'); 
    } 
}); 

方法3:只允许输入数字

addEvent(document.getElementById('myInput'), 'keyup', function() { 
    // replace everything except digits and a decimal place on every keypress 
    this.value = parseFloat(this.value).toFixed(2); 
}); 

请注意,用户可以禁用JavaScript,因此你也应该处理在服务器端表单值无效。

这里是我用于跨浏览器事件处理的addEvent函数,因为IE <仅支持attachEvent,其他浏览器仅支持addEventListener

function addEvent(element, eventType, eventHandler) { 
    if (window.addEventListener) { 
     element.addEventListener(eventType, eventHandler, false); 
    } else { 
     element.attachEvent('on'+eventType, eventHandler); 
    } 
} 

更新:现在只有两个数字是一个小数点后允许的。

2

使用正则表达式:

(\d)+ 

如果你有一个比赛,你必须在你的字符串的数字。

+0

+1正则表达式是最好的方式去验证,恕我直言。 – Liam 2010-12-04 16:24:44

-1

尝试这种情况:

if(!/\d*/.test(userName)) 
{ 
    //do something.. 
}