摘要:[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的。