String类型
1.字符串的模式匹配方法
1) match(),与RegExp的exec()方法相同,也只接受一个参数,要么是一个正则表达式,要么是一个RegExp对象。
var text = "cat,bat,fat,sat"; var pattern = /.at/; var matches = text.match(pattern); alert(matches[0]); //cat alert(matches.index); //0 alert(pattern.lastIndex); //0
2) search(),从字符串开头向后查找模式,返回字符串中第一个匹配项的索引,如果没有则返回-1
var text = "cat,bat,fat,sat"; var pattern = /at/; var pos = text.search(pattern); alert(pos); //1 ;第一个匹配的位置
3) replace() ,替换子字符串的操作函数
var text = "cat,bat,fat,sat"; var resultReplace = text.replace("at","ond"); alert(resultReplace); //cond,bat,fat,sat resultReplace = text.replace(/at/g,"ond"); alert(resultReplace); //cond,bond,fond,sond
ps:如果第一个参数是字符串,那么只会替换第一个子字符串。要想替换说有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局(g)标志。
- replace()方法的第二个参数也可以是一个函数。
例如:转义HTML代码中的< 、> 、“ 和 &
var pattern = /[<>"&]/g; function htmlEscape(text){ return text.replace(pattern,function(match,pos,originalText){ switch(match){ case "<": return "<"; case ">": return ">"; case """: return """; case "&": return "&"; } }); } var text = "<p class="paraBg">Hello Word!</p>" ; alert(htmlEscape(text));
4) split()方法,基于指定的分隔符将一个字符串分割成多个子串,并将结果放在一个数组中。第二个参数可用于指定数组的大小。
var url = "http://item.taobao.com/item.htm?a=1&b=2&c&d=xxx&e"; var result = url.split("?"); var re = result[1]; alert(re);//a=1&b=2&c&d=xxx&e var r = re.split("&"); for(var i=0;i<r.length;i++){ alert(r[i]); }
5)fromCharCode()方法 与 charCodeAt()执行的是相反的操作。
fromCharCode()方法接收一或多个字符编码,然后将它们转化成一个字符串。
alert(String.fromCharCode(65,66,101)); //ABe