如何使输入字段在javascript中接受字母数字数据

时间:2014-10-28 01:31:16

标签: javascript

我希望(使用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>

2 个答案:

答案 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
   }
  }