2014-10-28 53 views
0

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

工作正常這裏http://jsfiddle.net/wtuwqzv0/嘗試輸入一些字符,除了'0-9','az',' AZ',你會看到它的工作預計。 – 2014-10-28 01:37:30

+0

好吧!非常感謝。我真正想要的是它只接受只包含字母數字數據類型的輸入或顯示警報。就目前而言,如果數字輸入進入,則不會發出警報。只有字母表也一樣。 – chuzymatics 2014-10-28 01:51:32

+0

不明白你的意思。再次嘗試您的演示,只輸入數字字符或字母字符將通過正則表達式,並沒有任何警報。如果可能的話,可以給出一些輸入示例,以顯示警報。 – 2014-10-28 01:56:15

回答

1

你需要的是一些斷言(僅前瞻中的Javascript支持)是這樣的:

var alNumeric = /^(?=.*?\d)(?=.*?[a-zA-Z])[\da-zA-Z]+$/ 

斷言(?=.*?\d)首先檢查是否有字符串中的任何digit,如果它是滿意,去直到下一個斷言(?=.*?[a-zA-Z])檢查是否存在任何字母字符。如果是,請繼續下一個表達式[\da-zA-Z]+,該表達式僅匹配字母數字字符。

-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 
    } 
    } 
+0

如果我沒有記錯,返回不能從條件括號內正確地操作。值得注意。如果我錯了,請讓我知道。 – 2014-10-28 02:48:59

相關問題