2013-10-22 69 views
4

空間我有這樣的位置:正則表達式,允許字母數字

$("#MyInputBox").keypress(function (e) { 
    if (e.charCode != 0) { 
    var regex = new RegExp("^[a-zA-Z0-9\-\s]+$"); 
    var key = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
    if (!regex.test(key)) { 
     e.preventDefault(); 
     return false; 
    } 
    } 
}); 

問題是,它不會讓我輸入一個空格。我想它允許一個空間。一切工作正常(即我可以輸入數字,字母,破折號...但沒有一個空格。)

+0

空間哪裏(任何地方)? –

+0

除了字符串的開頭和結尾之外的任何地方,在前一個字符之後只允許有一個空格(下一個應該是字母數字字符短劃線) –

回答

11

必須逃離之前s

var regex = new RegExp("^[a-zA-Z0-9\\-\\s]+$"); 

反斜線或ommit構造:

var regex = /^[a-zA-Z0-9\-\s]+$/ 
+1

根據註釋,您希望像'^([a- zA-Z0-9 \\ - ] [a-zA-Z0-9 \\ - \\ s])+ $' – Jeff

+0

該問題的問題和代碼與**單個字符**的測試有關,這不是對評論的回答。 –

+0

謝謝你,那曾經工作 –

相關問題