我希望(使用javascript)下面的输入字段仅接受字母和数字的组合,否则显示消息。它只显示消息,如果它是空的。似乎有些事情是错误的,我并不完全清楚。
<script type='text/javascript'>
function isAlphanumeric(elem, msg){
var alNumeric = /^[0-9a-zA-Z]+$/
if(elem.value.match(alNumeric)){
}else{
alert(msg)
elem.focus()
return false
}
}
</script>
<form>
<input type ='text' id ='letter_number'/>
<input type ='button' onclick ="isAlphanumeric(document.getElementById('letter_number'), 'Enter a mix of letter and num pls')" value ='letter_number'/>
</form>
答案 0 :(得分:1)
你需要的是一些断言(在Javascript中只支持前瞻),如下所示:
var alNumeric = /^(?=.*?\d)(?=.*?[a-zA-Z])[\da-zA-Z]+$/
断言(?=.*?\d)
首先检查字符串中是否有digit
,如果满足,则继续执行检查是否存在任何字母字符的下一个断言(?=.*?[a-zA-Z])
。如果是,请转到下一个仅匹配字母数字字符的表达式[\da-zA-Z]+
。
答案 1 :(得分:-1)
这是我从JSFiddle那里得到的:
function isAlphanumeric(elem, msg){
var alNumeric = /^[0-z]+$/
if(elem.value.match(alNumeric)
&& elem.value.match(/[0-9]+/)
&& elem.value.match(/[A-z]+/)) {
}else{
alert(msg)
elem.focus()
return false
}
}