Rumah  >  Artikel  >  hujung hadapan web  >  js menggunakan ungkapan biasa untuk melaksanakan kemahiran replaceAll method_javascript

js menggunakan ungkapan biasa untuk melaksanakan kemahiran replaceAll method_javascript

WBOY
WBOYasal
2016-05-16 16:39:052359semak imbas

Rentetan JS mempunyai kaedah replace(). Tetapi kaedah ini hanya akan menggantikan rentetan pertama yang dipadankan. Contohnya:

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
<script>
var str = "wordwordwordword";
var strNew = str.replace("word","Excel");
alert(strNew);
</script>
</BODY>
</HTML>

Jika anda ingin menggantikan semua, JS tidak menyediakan kaedah seperti replaceAll. Kesan Ganti boleh dicapai menggunakan jadual biasa:

str.replace(/word/g,"Excel")

g bermaksud: lakukan perlawanan global (cari semua perlawanan dan bukannya berhenti selepas perlawanan pertama ditemui).

<HEAD>
<TITLE> New Document </TITLE>
<script>
function replaceAll(str)
{
if(str!=null)
str = str.replace(/word/g,"Excel")
return str;
}
</script>
</HEAD>

<BODY>
<script>
var str = "wordwordwordword";
var strNew = str.replace("word","Excel");
strNew = replaceAll(str);
alert(strNew);
</script>
</BODY>
</HTML>

Kaedah penulisan di atas mempunyai kaedah penulisan yang serupa:

str.replace(new RegExp("word","gm"),"Excel")

g melakukan perlawanan global (mencari semua perlawanan dan bukannya berhenti selepas perlawanan pertama ditemui).

m melakukan padanan berbilang baris.

Selain itu, anda juga boleh menambah kaedah prototaip objek Stirng:

String.prototype.replaceAll = function(s1,s2){ 
return this.replace(new RegExp(s1,"gm"),s2); 
}


Dengan cara ini anda boleh menggunakan replaceAll sama seperti menggunakan kaedah replace

str.replaceAll("word","Excel");

Ringkasnya, terdapat tiga cara

1. str.replace(/oldString/g,newString)

2. str.replace(new RegExp(oldString,"gm"),newString)

3. Kaedah prototaip objek Tambah String gantiSemua

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