清理文本区域值:修剪所有行中的空格

发布于 2024-12-21 04:09:03 字数 727 浏览 3 评论 0原文

我已设置粘贴事件来清理文本区域值。它已经完成了我需要的一切,除了一件事:修剪所有行开头和结尾的空格。有什么想法吗?

$('#q').bind('paste',function(e) {
    $.doTimeout(100,function(){
        $('#q').val($('#q').val().replace(/[@#$%\^&*=_+"'\/<>\\\|{}\[\]]/g,function(str){return '';})); //remove unwanted characters
        $('#q').val($('#q').val().replace(/[\t ]+/g,' ')); //remove extra spaces and tabs between letters 
        $('#q').val($('#q').val().replace(/\n{1,}/g,'\n\n')); //remove extra lines
        //here i need to remove white spaces at the beginning or end of each line
    });
});

ps:我使用 ben alman 的 doTimeout 插件 因为粘贴事件在文本之前被触发可用的。

I've set the paste event to sanitize the textarea value. It already does everything I need, except one thing: trim white spaces at the beginning and end of all lines. Any ideas?

$('#q').bind('paste',function(e) {
    $.doTimeout(100,function(){
        $('#q').val($('#q').val().replace(/[@#$%\^&*=_+"'\/<>\\\|{}\[\]]/g,function(str){return '';})); //remove unwanted characters
        $('#q').val($('#q').val().replace(/[\t ]+/g,' ')); //remove extra spaces and tabs between letters 
        $('#q').val($('#q').val().replace(/\n{1,}/g,'\n\n')); //remove extra lines
        //here i need to remove white spaces at the beginning or end of each line
    });
});

ps: im using ben alman's doTimeout plugin because the paste event gets fired before the text is available.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

说好的呢 2024-12-28 04:09:03

像这样的东西吗? http://jsfiddle.net/Tentonaxe/ptGS5/

$('#q').bind('paste',function(e) {
    setTimeout(function(){
        var baseStr = $('#q').val();
        baseStr = baseStr.replace(/[@#$%\^&*=_+"'\/<>\\\|{}\[\]]/g,"");
        baseStr = baseStr.replace(/[\t ]+/g,' ');
        baseStr = baseStr.replace(/\n{1,}/g,'\n\n');
        lineArr = baseStr.split(/\n/);
        for (var i=0;i<lineArr.length;i++) {
            lineArr[i] = lineArr[i].replace(/(^ +| +$)/g,"");   
        }
        baseStr = lineArr.join("\n")
        $("#q").val(baseStr);
    },100);
});

对我来说,使用 setTimeout 比使用更容易将 doTimeout 插件复制到 jsfiddle 中。

Something like this? http://jsfiddle.net/Tentonaxe/ptGS5/

$('#q').bind('paste',function(e) {
    setTimeout(function(){
        var baseStr = $('#q').val();
        baseStr = baseStr.replace(/[@#$%\^&*=_+"'\/<>\\\|{}\[\]]/g,"");
        baseStr = baseStr.replace(/[\t ]+/g,' ');
        baseStr = baseStr.replace(/\n{1,}/g,'\n\n');
        lineArr = baseStr.split(/\n/);
        for (var i=0;i<lineArr.length;i++) {
            lineArr[i] = lineArr[i].replace(/(^ +| +$)/g,"");   
        }
        baseStr = lineArr.join("\n")
        $("#q").val(baseStr);
    },100);
});

It was easier for me to just use setTimeout than copy the doTimeout plugin into jsfiddle.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文