이전 글에서는 정규화의 4가지 기본 방법을 소개했고, 당시 교체 방법에 대해서도 언급했습니다
replace 메서드의 사용을 검토해 보겠습니다.
먼저 일반 객체를 정의합니다. var re=/가운데에 일치 조건을 작성합니다/;
교체(): 문자열을 정기적으로 일치시킵니다. 일치에 성공하면 성공적으로 일치된 문자열을 새 문자열로 바꿉니다.
구문: string.replace(re, new string)
예: 인터넷에서 미개한 단어가 *로 대체되는 경우가 종종 있습니다. 시도해 보겠습니다.
<!DOCTYPE> <html> <head> <meta charset='utf-8'> <title></title> </head> <script type="text/javascript"> window.onload=function(){ var oTxtarea=document.getElementsByTagName('textarea'); var oInpt=document.getElementById('bt'); var re=/你妹|fuck|你大爷|萌萌/g; oTxtarea[0].value='我要看你妹,不行,你大爷,我要萌萌你妹,不行,你想想的太多了'; oInpt.onclick=function(){ oTxtarea[1].value=oTxtarea[0].value.replace(re,'*'); }; }; </script> <body> <textarea rows='7' cols='20'> </textarea><br /> <input id='bt' type='button' value='转化不文明的语言'><br /> <textarea rows='7' cols='20'> </textarea><br /> </body> </html>
물론, 우리는 위의 변환 효과에 만족하지 않습니다. 제가 달성하고 싶은 것은 몇 단어를 변환한 후 여러 개의 * 기호를 표시하는 것입니다
이때 실제로 분석이 필요합니다. 교체(매개변수 1, 매개변수 2)의 매개변수 2는 콜백 함수일 수 있으며, 두 번째 매개변수를 콜백 함수로 대체하고 이 콜백 함수를 제공하겠습니다. 매개변수 전달
<!DOCTYPE> <html> <head> <meta charset='utf-8'> <title></title> </head> <script type="text/javascript"> window.onload=function(){ var oTxtarea=document.getElementsByTagName('textarea'); var oInpt=document.getElementById('bt'); var re=/你妹|fuck|你大爷|萌萌/g; oTxtarea[0].value='我要看你妹,不行,你大爷,我要萌萌你妹,不行,你想想的太多了'; oInpt.onclick=function(){ oTxtarea[1].value=oTxtarea[0].value.replace(re,function(obj){ alert(obj); /*alert(obj.length);*/ }); }; }; </script> <body> <textarea rows='7' cols='20'> </textarea><br /> <input id='bt' type='button' value='转化不文明的语言'><br /> <textarea rows='7' cols='20'> </textarea><br /> </body> </html>
위 결과를 보면 매우 이상한 것을 알 수 있습니다. 두 번째 매개변수는 콜백 함수인데, 콜백 함수의 매개변수를 표시해 보면 모두 성공적으로 일치하는 문자열입니다
그런 다음 이 매개변수의 각 결과를 처리할 수 있으며 몇 단어로 인해 여러 개의 * 기호가 생성됩니다
<!DOCTYPE> <html> <head> <meta charset='utf-8'> <title></title> </head> <script type="text/javascript"> window.onload=function(){ var oTxtarea=document.getElementsByTagName('textarea'); var oInpt=document.getElementById('bt'); var re=/你妹|fuck|你大爷|萌萌/g; oTxtarea[0].value='我要看你妹,不行,你大爷,我要萌萌你妹,不行,你想想的太多了'; oInpt.onclick=function(){ oTxtarea[1].value=oTxtarea[0].value.replace(re,function(obj){ var a=''; for (var i = 0; i < obj.length; i++) { a+='*'; } return a; }); }; }; </script> <body> <textarea rows='7' cols='20'> </textarea><br /> <input id='bt' type='button' value='转化不文明的语言'><br /> <textarea rows='7' cols='20'> </textarea><br /> </body> </html>
위의 예를 통해 교체 방법에 대한 이해가 깊어졌나요? . . . .
위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.