JS刪除String里某個字符的方法


關於JS刪除String里的字符的方法,一般使用replace()方法。但是這個方法只會刪除一次,如果需要將string里的所以字符都刪除就要用到正則。

1
2
3
4
var  str =  "abcdaabbssaaa" ;
var  reg =  new  RegExp( "a" , "g" );
var  a = str.replace(reg, "" );
console.log(a);

  

  這里用 new RegExp()這個方法創建正則,第一個參數“a”指定了正則表達式的模式或其他正則表達式。后一個參數是一個可選的字符串,包含屬性 "g"、"i" 和 "m",分別用於指定全局匹配、區分大小寫的匹配和多行匹配。ECMAScript 標准化之前,不支持 m 屬性。如果 pattern 是正則表達式,而不是字符串,則必須省略該參數。

  如果打印reg的結果是: /a/g 。

  

 

  還有一種比較取巧的方法,就是分割成數組,再重新拼接成新的字符串。

1
2
3
var  str =  "abcdaabbssaaa" ;
var  a = str.split( "a" ).join( "" );
console.log(a);

  

  我測試了一下這兩種方式的性能,選取了一個長度為133的字符串,其中要刪除的字符有28個,兩種方法的用時如下表:

使用正則 分割成數組
11.674ms 6.569ms
8.683ms 6.727ms
5.802ms 12.309ms
4.492ms 8.456ms
3.921ms 6.481ms
3.766ms 4.275ms
6.472ms 2.985ms
14.631ms 15.029ms
6.985ms 8.523ms
9.835ms 7.063ms

  使用正則刪除字符的,最慢14.631ms,最快3.766ms,平均7.6261ms

  使用第二種方法,最慢15.029ms,最快2.985ms,平均7.8417ms

  對比發現,還是用正則快一點吧~~而且感覺高大上~~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM