Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Ersetzungsmethode in Javascript, reguläre Ausdrücke_Javascript-Kenntnisse

Detaillierte Erläuterung der Ersetzungsmethode in Javascript, reguläre Ausdrücke_Javascript-Kenntnisse

WBOY
WBOYOriginal
2016-05-16 16:03:141209Durchsuche

Im vorherigen Artikel habe ich die vier grundlegenden Methoden der Regularisierung vorgestellt und damals auch die Ersetzungsmethode erwähnt

Sehen wir uns die Verwendung der Ersetzungsmethode an:
Definieren Sie zunächst ein reguläres Objekt: var re=/schreiben Sie die passenden Bedingungen in die Mitte/;
replace(): Strings regelmäßig abgleichen. Wenn der Abgleich erfolgreich ist, ersetzen Sie den erfolgreich abgeglichenen String durch einen neuen String
Syntax: string.replace(re, neuer String);

Zum Beispiel: Im Internet kommt es oft vor, dass unzivilisierte Wörter durch * ersetzt werden:


<!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>
Natürlich sind wir mit dem oben genannten Konvertierungseffekt nicht zufrieden. Was ich erreichen möchte, ist, nach der Konvertierung einiger Wörter mehrere *-Zeichen anzuzeigen

Zu diesem Zeitpunkt müssen wir analysieren, dass Parameter 2 in Ersetzen (Parameter 1, Parameter 2) eine Rückruffunktion sein kann, den zweiten Parameter durch eine Rückruffunktion ersetzen und diese Rückruffunktion angeben übergibt einen 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>
Es ist ersichtlich, dass das obige Ergebnis sehr seltsam ist. Der zweite Parameter ist die Rückruffunktion, aber wenn die Parameter in der Rückruffunktion angezeigt werden, handelt es sich bei allen um erfolgreich übereinstimmende Zeichenfolgen

Dann können wir jedes Ergebnis in diesem Parameter verarbeiten und ein paar Wörter erzeugen mehrere *-Zeichen


<!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>
Haben Sie anhand des obigen Beispiels Ihr Verständnis der Ersetzungsmethode vertieft? . . . .

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn