2011-12-13 3 views
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 : 사용하여 메신저 벤 독일어의 doTimeout plugin 텍스트를 볼 수 있습니다 전에 붙여 넣기 이벤트가 발생됩니다 때문이다.

답변

1

이와 비슷한? jsfiddle에 doTimeout 플러그인을 복사보다 나를 단지의 setTimeout을 사용하는

$('#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); 
}); 

http://jsfiddle.net/Tentonaxe/ptGS5/ 그것은 쉬웠다.