那么今天继续了,上次我们熟悉了一下关于JavaScript正则表达式的一些基本匹配方式,今儿个咱来学习下String对象的一些和正则表达式有关的方法,关于这个应该不用多说,常用于表单的字符串验证。
1.String对象的replace()方法
String对象最基本的方法之一,它用于替换目标字符串中的某个字符。比如:
var s = "—Hello11—"; //将这个字符串中的-替换成#
alert(s.replace("-","#")); //返回#–Hello11—而不是###Hello11###//要替换所有的-号我们可以用正则了
alert(s.replace(/-/,"#")) //用/-/来替换#,结果与上面一样,原因是你忘了加上匹配模式
alert(s.replace(/-/g,"#")); //这样就可以将字符串的所有的-替换成#了
//如果我想把目标字符串替换成#Hello11#该怎样写正则呢?
alert(s.replace(/-+/g,"#")); //+是什么作用请查上篇笔记
String对象正则实现trim(去空格)效果
var s = " Hello ";
alert("|"+s.replace(/^\s+/,"")+"|"); //替换前面的多个空格:^
alert("|"+s.replace(/\s+$/,"")+"|"); //替换后面的多个空格:$ 注:加上“|”易辨认//整合到一个trim函数里面去,调用此方法时可以去掉字符串两边的空格
function trim(s){
var re1 = /^\s+/,re2 = /\s+$/;
s= s.replace(replace(),"");
return s.replace(re2,"");
}
2.String对象的split()方法
此方法将目标字符串用某字符分割开,并返回一个数组对象。基本用法如下:
var s = "12,34,56";
var arrs = s.split(",")
alert(arrs[0]+"\n"+arrs[1]+"\n"+arrs[2]);
小扩展:当目标字符串是用户输入的一些字符,比如生日。我们该如何分别获取他的年、月、日。
var s = "1988-8-8"; //这里是用户输入的数据
var date = s.split("-");
var year = date[0],month = date[1],day = [2];
alert("您出生于:"+year+"年"+month+"月"+day+"日");
对于一些“不按常理出牌”的用户,我们可以用正则去搞定,比如:
var s = "1988- 8 -*8"; //比如用户这样输入了数据
var date = s.split(/[^0-9]+/); //脱字符^放在[]中间表示匹配相反内容//这个正则表示匹配多个非数字字符,用其分割
var year = date[0],month = date[1],day = [2];
alert("您出生于:"+year+"年"+month+"月"+day+"日");
3.String对象的search()方法
这个方法表示查找字符串中与之匹配的字符并返回其下标值,没找到匹配值时返回-1 。比如:
var s = "My age is 18.";
alert(s.search("1"));//返回10,search方法与indexof方法的区别在于search可以使用正则
4.String对象的match()方法
这个方法类似于正则中的exec方法,如:
var s = "Ubuntu 8.10";
var re = /^([a-z]+)\s+(\d+)\.(\d+)/i; //正则中的.表示匹配任意字符,这里要转义它
var arrs = s.match(re);
alert("name:"+arrs[1]+"\nversion:"+arrs[2]+"\nsub-version:"+arrs[3]);
休息一下..

学习了,有空到我的网站参观指导!
收到了,有点复杂
谢谢分享,学习了。
果断沙发一个,嘿嘿