Rumah >hujung hadapan web >tutorial js >Penjelasan terperinci tentang kaedah ganti dalam kemahiran javascript regular expressions_javascript

Penjelasan terperinci tentang kaedah ganti dalam kemahiran javascript regular expressions_javascript

WBOY
WBOYasal
2016-05-16 16:03:141236semak imbas

Dalam artikel sebelum ini, saya telah memperkenalkan empat kaedah asas regularization, dan saya juga menyebut kaedah ganti pada masa itu

Mari kita semak penggunaan kaedah ganti:
Mula-mula tentukan objek biasa: var re=/tulis keadaan padanan di tengah/;
replace(): Selalu padankan rentetan Jika perlawanan berjaya, gantikan rentetan yang berjaya dipadankan dengan rentetan baharu
Sintaks: string.replace(re, new string);

Contohnya: Selalunya ditemui di Internet bahawa perkataan yang tidak beradab akan digantikan dengan *. Mari cuba:


<!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>
Sudah tentu, kami tidak berpuas hati dengan kesan penukaran di atas Apa yang saya ingin capai ialah memaparkan beberapa * tanda selepas menukar beberapa perkataan

Pada masa ini kita perlu menganalisis Sebenarnya, parameter 2 dalam ganti(parameter 1, parameter 2) boleh menjadi fungsi panggil balik melepasi parameter


<!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>
Dapat dilihat bahawa keputusan di atas adalah sangat pelik Parameter kedua ialah fungsi panggil balik, tetapi apabila parameter dalam fungsi panggil balik dipaparkan, semuanya berjaya dipadankan dengan rentetan

Kemudian kita boleh memproses setiap hasil dalam parameter ini, dan beberapa perkataan akan menghasilkan beberapa * tanda


<!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>
Melalui contoh di atas, adakah anda telah mendalami pemahaman anda tentang kaedah ganti? . . . .

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn