簡體   English   中英

textarea的jQuery輸入過濾器

[英]jQuery input filter for textarea

將此解決方案改編為我的腳本。 這個想法是防止用戶輸入未經授權的字符(當然后端也有一個過濾器)。

$('#someinput').keyup(function() {
    var $th = $(this);
    $th.val( $th.val().replace(/[^a-zA-Z0-9]/g, function(str) {
        console.log(str);
        return '';
    }))
})

它工作得很好,但我也需要用戶能夠鍵入特定的允許字符,如:。,!?ñáéíóú - 我的意思是,基本的a-zA-Z0-9加上一些基本字符和一大堆特殊語言字符。

實際上需要忽略的是:@#$%^&*()= _ +“':; / <> \\ | {} []

有任何想法嗎? 謝謝!

解決方案感謝Michael

//query
$('#someinput').keyup(function() {
    var $th = $(this);
    $th.val($th.val().replace(/[@#$%\^&*()=_+"':;\/<>\\\|{}\[\]]/g,function(str){return '';}));
}).bind('paste',function(e) {
    setTimeout(function() {
        $('#someinput').val($('#someinput').val().replace(/[@#$%\^&*()=_+"':;\/<>\\\|{}\[\]]/g,function(str){return '';}));
        $('#someinput').val($('#someinput').val().replace(/\s+/g,' '));
    },100);
});

將正則表達式反轉為僅替換要省略的特定字符:

$th.val( $th.val().replace(/\s?[@#$%\^&*()=_+"':;\/<>\\\|{}\[\]]/g, ""));
// Edit: added optional \s to replace spaces after special chars

注意,其中一些需要在[]字符類中使用反斜杠進行轉義: \\\\\\[\\]\\^\\/

如果我理解你想要做什么,你不能只是將這些不需要的字符添加到你的正則表達式而不是[^a-zA-Z0-9]嗎?

將其替換為[@#\\$%\\^&\\*\\(\\)=_\\+"':;\\/<>\\\\\\|\\{\\}\\[\\]] (注意轉義)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM