基本的字符串操作
search 变量名.search('要查找的元素'); 出来的结果是该元素的位置下标。如果不存在,则返回-1;
substring 变量名.substring('起始‘,'结束'); 查找从开始到结束前一个的字符串,不包括结束的。
charAt 变量名.charAt('元素下标号');通过下标查找某个元素;
split 变量名.split(' ') ;把字符串分割成数组;
找出字符串中的所有数字
传统方法:
var str='12 dd 34 h 34';
var arr=[];
var tmp=' ';
for(var i=0;i<str.length;i++){
if( str.charAt(i)>=0&&str.charAt(i)<=9){
tmp+=str.charAt(i);
}else{
if(tmp){
arr.push(tmp);
tmp=' ';
}
}
if(tmp){
arr.push(tmp);
tmp=' ';
}
用正则表达式:
str.match(/\d+/g)
用正则表达式表达的两种方法:
JS风格: new RegExp("a","i");
perl风格:/a/i
正则中的特殊字符:
\ 转义字符;
. 任意字符;
\d 数字0-9;
\w 数字0-9、字母a-z及A-Z(大小写),或下划线
\s 空格符、Tab、换页符、换行符
\D 除了数字0-9;
\w 除了 数字0-9、字母a-z及A-Z(大小写),或下划线
\s 除了空格符、Tab、换页符、换行符
\t \r \n \v \f tab回车 换行 垂直制表等 换页符
[...] 中括号表示字符范围
[^...] 字符范围以外
^ 行首 ^abc 表示abc必须放在行首
abc 表示abc必须放在行尾
\b 零宽单词边界
\B 非\b
(x) 分组,并记录匹配到的字符串 /(abc)/
\n 表示使用分组符(x)匹配到的字符串 --> /(abc)\1/.test('abcabc');
(?:x) 仅分组 --> /(?:abc)(def)\1/.test(abcdefdef);
x?, x+? 如: abc? 在字符串abcccccc中将匹配ab,abc+?则匹配abc
x{n}, 重复 n 次
x{n,}, 重复 >=n 次
x{n,m}, 重复次数x满足: n <= x <= m
正则表达式中的4中对象方法:
1.正则.exec("字符串") 匹配字符串
2.正则.test reg.test("def"); // ture
3.正则.compile()改变正则的值 var reg = /abc/; reg.compile("def"); 将"abc"变成"def",用complie来改变正则的规则和属性
4.正则.toString()输出整个正则 /abc/.toString(); // "/abc/"
正则中的三个标签:
global(全局匹配),ignoreCase(忽略大小写),multiline(跨行)
使用方法
1.正则对象后直接接“gim”,gim分别对应以上三个标签,顺序与个数不定
2.RegExp(正则表达式, "mgi")
正则中的相关方法:
search() 字符串搜索
match() 字符匹配
replace('匹配内容','替换内容') 替换所有匹配
split(" ") 把字符串转换成数组
邮箱验证格式:
var re=/^\w@[a-z0-9]+.[a-z]+$/i;