验证在JavaScript中的文本框?
- 如何验证文本框应该只包含字母 使用JavaScript或使用正则表达式?
创建一个函数:
function validateTextbox(element) {
var pattern = /^[A-Za-z]+$/;
if (!pattern.test(element.innerHTML) {
//Do something
element.innerHTML += " Not matched";
}
}
将其绑定到元素:
<some-element onchange="validateTextbox(this)" />
或者使用绑定它(更易于维护和推荐)的方式:
var element = getElementById("someID");
element.addEventListener("change", function() {
var pattern = /^[A-Za-z]+$/;
if (!pattern.test(element.innerHTML) {
//Do something
element.innerHTML += " Not matched";
}
}
}
这是行不通的。您不应该使用innerHTML来测试文本框的值,并且您的正则表达式将绝对匹配所有内容(因为它测试查看一个字符串是否包含零个或多个特定字符,而所有字符串都会)。应避免内部事件处理程序属性。不依赖于分号插入被认为是良好的编码风格。 – Quentin 2012-02-07 09:54:35
哦,'element.innerHtml'将永远是'undefined',除非有明确的分配给它。 JavaScript区分大小写。 – Quentin 2012-02-07 09:59:59
感谢您指出我的错别字(分号和innerHTML)。就正则表达式而言,我认为他希望匹配空字符串A-Z和空格* 0或更多次*。 – 2012-02-07 10:08:37
您可以使用Regex in JavaScript来实现此目的...
var text = document.getElementById('TEXTBOX_ID').value;//get value from textbox
var regex = /^[a-zA-Z]+$/;//only allow letters (minimum of 1). No whitespace, no symbols, no numbers
if(regex.test(text)){
//this is valid
}
尝试这样的:
<script type="text/javascript">
var cek = /^[a-zA-Z\ \']+$/;
function validate(form){
var name = form.name.value;
if (!cek.test(name)) {
alert("Only Alphabetic");
return false;
}
return true;
}
</script>
<form method="" action="#" onSubmit="return validate(this);" name="form">
<input type="text" id="name" name="name" value="" />
<input type="submit">
</form>
,这个问题很简单,但我得到了一些困难。 – Nitish 2012-02-07 09:46:49
到目前为止你有什么? – Quentin 2012-02-07 09:53:07
为什么这个标签为'java'? – Quentin 2012-02-07 09:57:15