2016-04-14 9 views
0

入力時に特殊文字をブロックする必要がありますが、Chromeのコードでは単語間のスペースを入力できません.Firefoxでは正常に動作します。特殊文字をブロックするが空白を許可する

var regex = new RegExp("^[0-9a-zA-Z\b]+$"); 
var key = String.fromCharCode(!event.charCode ? event.which: event.charCode); 
if (!regex.test(key)) 
{ 
    event.preventDefault(); 
    return false; 
} 

答えて

3

スペースをRegExpに追加できませんか?

var regex = new RegExp("^[0-9a-zA-Z \b]+$"); 
var key = String.fromCharCode(!event.charCode ? event.which: event.charCode); 
if (!regex.test(key)) 
{ 
    event.preventDefault(); 
    return false; 
} 
+2

こちらを参照してくださいhttps://regex101.com/r/pE4zA6/1 –

+0

私は非常にあなたをサポートしているあなたのコメント、タマス –

+1

クリックするだけアンドプレイの例を理解していません回答。 –

0

各入力された値をチェックする以外の別のアプローチは、全体の文字列を入力した後、値をチェックすることです:

コードのようなものになるでしょう。

document.getElementById("ok").onclick = function() { 
 
    var regex = new RegExp("^[0-9a-zA-Z\b ]+$"); 
 
    var str = document.getElementById("demo").value; 
 
    if (regex.exec(str) == null) { 
 
    alert("Not good."); 
 
    document.getElementById("demo").value = null; 
 
    return false; 
 
    } else { 
 
    alert("Good"); 
 
    // Do whatever you want. 
 
    } 
 
}
<input type="text" id="demo"> 
 
<input type="button" id="ok" value="Validate">

関連する問題