作者TonyQ (沉默是金。)
看板Ajax
标题Re: [问题] javascript replace的正规表达式
时间Wed Aug 11 22:44:09 2010
※ 引述《BA0 (宝)》之铭言:
: 小弟希望把一个字串内的几个特定内容换成另外几个
: 文字表达比较混乱-_-
: 就是象 str1="sfjoabysfjslsfdctjpsg"
: 想把其中的a都换成@,s都换成$
: 我知道可以用
: str1=str1.replace(/a/g,"@");
: str1=str1.replace(/s/g,"$");
: 但是我想问用一次replace完成,应该怎麽写
: 如果字串很长,跑两次很低效
: 感谢大大回答
你可以这样写
str1=str1.replace(/[as]/g,function(token){
if(token == "s") return "@";
else return "$";
});
token会拿到pattern match到的字
--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.82.145.85
1F:推 megaman1206:不过经过实验看起来用function反而会造成overhead 08/11 23:18
3F:→ TonyQ:基本上这种问题是不是有需要去作最佳化是by case 的 :~ 08/11 23:19
4F:推 megaman1206:看来用字串还是最快的orz 08/11 23:30
6F:推 s25g5d4:高手出现了! 话说那天去SYSOP朝圣时赫然发现T大的踪迹 08/11 23:38
7F:→ s25g5d4:才知道原来你是小组长XDDD 08/11 23:38
8F:→ grence:用字串 replace只会取代一次喔!结果应该不符需求 08/12 00:44
9F:推 s25g5d4:楼上 w3c建议第二个参数使用函数 因为可以传进match到的 08/12 18:20
10F:→ s25g5d4:值作判断在丢出要取代的字 08/12 18:20