JavaScript:字符串&数组&正则

转载 (原文地址) netsrong 随笔 JS 640阅读 2014-08-27 10:07:30 举报

常用字符串操作
1,[color=Red]search[/color] 返回要查找的字符串第一次出现的位置
'abcde'.search('a'); 'abcde'.indexOf('a');
'abcede'.lastIndexOf('e');

2,substring 截取字符串,不包含结束位置,如果是负数,会默认转换成0
'abcde'.substring(1) 从1取到结束位置;
'abcde'.substring(2,4) 从2到3位置;//不包括结束位置 'abcde'.slice(1,3); 'abcde'.slice(3);//从3到结束位置
'abcde'.substr(1,3); //包括结束位置
split 分割字符串

3,str[0]不兼容IE6,charAt 找某个位置上的字符
'abcde'.charAt(1) '我'.charCodeAt()找某个位子上的字符编码
String.fromCharCode(25106) 编码转换成文字

4,toLowerCase(); toUpperCase();
5,'def'.localeCompare('abc');
'我'.localeCompare('你'); //根据本地习惯比较

数组
var arr= [1,2,3];
arr.push(4); //从数组后面添加
arr.unshift(4); //从数组前面添加一个
arr.pop(); //从数组后面删除一个
arr.shift(); //从数组前面删除一个
splice(start, length, .....); //先删除,再添加
var arr=[1,2,3,4,5,6,7,8,9];
arr.splice(2,3); //从2开始,删除3个元素
arr.splice(2,0,'a','b'); //在2的位置插入a,b
arr.splice(2,1,'b'); //在2的位置,删除一个,再添加一个(替换)
arr.join('-'); //合并数组
arr.slice(start,end); //取子数组,不包括结束位置arr.concat(['苏']);
var arr=['left','float','aplce','content','test','zoom'];
arr.sort(); //排序,大写在最前面 reverse转换
arr.toString(function(){
return "abc";
});
'2'.toString(16); //转换成16进制
var arr=[12,78,335,21,2]; //默认将所有字符都当字符串来排序
arr.sort(function(num1,num2){
return num1-num2;
});
var arr=['张三','刘伟','莫涛','阿杜','北京','上海'];
arr.sort(function(str1,str2){
return str1.localeCompare(str2);
});

正则(规则表达式)
var re= new RegExp('规则', 'i');
var str= 'abcef';

1,test 参数是否符合规则
re.test(str); js风格
/规则/i.test(str); perl风格

2,search 查找符合规则的字符的位置
str.search(/规则/);

3,match 匹配符合规的字符串
str.match(/规则/); 返回数组

4,replace 替换 字符串 str.replace('a','b') 将a替换成b,但不能替换多个;
正则 str.replace('/a/g','b')

5,i 忽略大小写,g 查找全部字符串

6, {n,m} n到m个,/[1-9]\d{4,10}/g 表示第一个是1-9,后面4位到9位0-9的字符 + 量词 \d+,任意长度的数字 ,相当于{1,},最少出现一个,最多不限
量词 {0,1} ,零次或者一次
{n} 正好n次
* 量词, 任意次,{0,} ,最少出现0次,最多不限 , 一般不用
{n,} 至少出现n次

7,| 或 str.replace(/a|b|c/g,'') 将a或b或c替换成

8,[] 字符类 /1[abc]2/
[]或者,a或b或c
[]范围 ,[0-9a-z]

9,/^a/g 除了a之外的所有

10,/./ .可以表示所有东西,英文,数字,符号
/<.+>/g 匹配标签, .+表示任意多个字符;
/<[^<>]+>/g 匹配标签,标签中间不能出现<>;

11,\d 数字 digital [0-9]
\D 非数字 [^0-9]
\w 英文,数字,下划线 包括[a-z0-9]
\W [^a-z0-9]
\s space 空格,包括制表符
\S 除了空格以外的

12,\b 单词边界,把字符串分开的 /\\bsu\\b/ig , su字符串两边必须是单词的边界,必须是独立的一部分

13,范例:/^$/g在行首和行尾都符合要求;
邮箱:【字母,数字,下划线】@【英文,数字】.【英文{2,4}】 /^\w+@[a-z0-9]+.[a-z]{2,4}$/;
去掉收尾空格,保留中间空格:/^\s+|\s+$/,匹配行首的任意空格或者行尾的任意空格;
检测中文:[\u4e00-\u9fa5] , \u表示是utf8编码 ,4e00是汉字第一个字(一),9fa5是汉字的最后一个字( yu );

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复