[javascript]用replace取代split

  • 1265
  • 0

摘要:[javascript]用replace取代split

這其實超簡單的,

不過也希望高手看到可以幫忙點錯。

有時候要把特定格式的字剖析出來很麻煩,常常用split而且還要用個tmp變數當array。

比方我有個字串是這樣: (abc)

如果要把abc取出來,用split就要:
 

var str="(abc)";
var tmp=str.split("(");
var tmp2=tmp[1].split(")");
var result=tmp2[0];                 // result=abc

若是用replace則是:
 

var str="(abc)";
str=str.replace("(","");
var result=str.replace(")","");      //result=abc;

如果把它們連在一起寫(我剖析是慢慢用變數,因為我頭腦比較慢)可能沒什麼差別,

但是萬一字串是有的有'('有的沒有')',比方'(abc', 'fgh', 'jkl)', '(xyz)'......
那就要小心array(例如例中的tmp)的overflow了?

我發現這種時候用replace比較方便。
所以要是有類似剖析,只要用這樣的function就可以搞定:

function rmBlock(str,pivot,pivot2)
{
        // pivot="(";或其他包起來的前面符號
        // pivot2=")";包起來的後面符號
        str=str.replace(pivot,"");
        str=str.replace(pivot2,"");
        return str;
}

var result=rmBlock("(123)","(",")");    // result=123; 用'(123'或'123)'也不怕囉

感覺算是偷吃步~
雖然不知道運算上哪個比較快(程式處理速度),我個人覺得用replace簡潔有力~
當然,用split是比較直觀的想法啦!習慣用split的人還是會先用split的。