2016-05-06 15 views
0

HTMLのテキストエリアに入力を取ってから\ "制限したい私のコードはここにある:。私は '[]私はHTML <code><textarea></code>で入力を取ってから<code>"'[]</code>を制限したい

<textarea rows="5" id="comment" maxlength='500' 
 
    onkeyup="this.value = this.value.replace(/[$&*%^#!~`(){}:;<>?|,=+-]/g, '')" 
 
    placeholder="Enter your query."> 
 
</textarea>

+0

'id =" comment "' ...あなたが句読点を使用させないコメントシステムを書いていますか? (一般的に、人があなたに送る文字を制限しようとするのではなく、適切なエスケープを使うほうがよい)。 – Quentin

答えて

0

のように

その場合は、文字セットに追加してください。それぞれ\でエスケープするだけです:

/[$&*%\^#!~`(){}:;<>?|,=+\-\"\'\[\]\\]/g 

彼らは角括弧の中に特別な意味を持ちますので、私は、そのよう^-としてだけでなく、いくつか他の人のため\を追加しました。


編集: HTMLから直接正規表現を読んで、様々なパーサに問題があるようです。正規表現をリテラル形式にしたJavaScriptでも同じことが起こります。しかし、私は解決策を見つけました。

HTML::

<textarea rows="5" id="comment" maxlength='500' placeholder="Enter your query."></textarea> 

JS:

document.querySelector('textarea').addEventListener('keyup', function(e) { 
    var re = new RegExp(/[\[\]\\\'\"]/, 'g'); 
    this.value = this.value.replace(re, ''); 
}); 
+0

"、"、\、[]を制限したいだけです。その他の特殊文字は正常に防止されています。 –

+0

@mohanachoudhuriが私の解決策を更新しました。私はJavaScriptにいくつかのコードをシフトしなければならなかったが、それはあなたが望むものを与えるはずです。 – timolawl

0

あなた

ここでコードがあります:スタックスニペットとjsfiddleは両方とも私がCodepenと、次、次のような作品を行うときに文句を言うもののRegExで使用されている文字をエスケープする必要があります。ここで[]は式を指定するのに使われます。あなたは、あなたがこれを使用することができ、この

<textarea rows="5" id="comment" maxlength='500' 
 
       onkeyup="this.value = this.value.replace(/[\[\]]/g, '')" 
 
        placeholder="Enter your query." ></textarea>

+0

ありがとうございます、[]中括弧を防止します。 –

+0

あなたの質問を理解していれば、角括弧の中にいくつでも好きな文字を追加することができますが、文字がregExで使われていれば、それをエスケープするだけですバックスラッシュ(\) –

0

<script> 
 

 

 
function myFunction(event) { 
 

 
    var x = event.which || event.keyCode; 
 
// " ' [] \ 
 
    
 
if(x=="16" || x=="222" || x=="219" || x=="221" || x=="220") 
 
{ 
 

 
    document.getElementById("comment").value=""; 
 
    
 
} 
 
} 
 
</script> 
 

 
<textarea id="comment" onkeyup="myFunction(event)" ></textarea>
のようないくつかのことを使用する必要があります。

関連する問題

 関連する問題