js去除空格函数
var str=" 薛 定 谔 的 猫 ";
去除所有空格:
str=str.replace(/\s+/g,"");
alert(str);-->"薛定谔的猫"
去除两头空格:
str = str.replace(/^\s+|\s+$/g,"");
alert(str);-->"薛 定 谔 的 猫"
去除左空格:
str=str.replace( /^\s*/, '');
alert(str);-->"薛 定 谔 的 猫 "
去除右空格:
str=str.replace(/(\s*$)/g, "");
alert(str);-->" 薛 定 谔 的 猫"
js去除重复元素
字符串去重
var str = "qwertyuioiuytrewq";str = str.replace(/(.)(?=.*\1)/g,"");alert(str);-->"oiuytrewq"数组去重
var arr = new Array("中国","中国","中国","美国","美国","日本", "韩国","英国","德国","德国");
alert(arr.reverse().join(",").match(/([^,]+)(?!.*\1)/ig).reverse());-->"中国,美国,日本,韩国,英国,德国"
参考:http://www.cnblogs.com/forver/p/4312131.html
说明:
1、var reg =/(.)(?=.*\1)/g;
2、.匹配任意字符,但只能匹配任意字符中的一个;
3、(.)加上()就是将匹配的该字符存储起来供以后引用;
4、(?=)预搜索(也有叫断言的,也有叫预查的),指明某个字符的右侧是什么,但不包含这部分,只取这个‘某个字符’,如:p(?=ing)匹配字符串ping时匹配成功,但匹配到的字符是p不是ping;
5、(?=.*\1) 这个\1就是指的前面(.)的这个字符,之前说它被加上小括号就是被存储起来了,现在\1就是取存储的第一个(共一个):
*匹配次数,也有人称之为量词,指出现任意次
.*指出现任意次任意字符
6、(.)(?=.*\1)指第一个匹配字符,如果右侧出现的内容中包含该字符时就匹配上该字符;
7、 g指globle,全局匹配模式,匹配所有字符串;
8、这个去重的结果其实是倒着来排序的,就是说重复字符出现在前面的都被置空了,是按一个字符从后往前出现的顺序排的。