一、常见字符串操作
1、search(“字符”):查找。
返回字符所在位置,若无,则返回-1。
var str = "abcdefg";
str.search("b"); // 1
2、substr(开始索引值,结束索引值):获取子字符串。
返回起始索引之间的字符串,不包括结束索引值对应的字符。若无结束索引,默认到最后。可以为负值,从后往前数。
var str = "abcdefg";
str.substr(1,5); // bcde
3、charAt(索引值):获取某个字符。
var str = "abcdefg";
str.charAt(3); // d
4、split(”分隔符”):分割字符串,获得数组。
字符串->数组最基本的方式。
var str = "abc-de-fg";
str.split("-"); // [abc,de,fg]
二、什么是正则表达式
1、什么是“正则”:正则就是一种规则、模式。
2、正则表达式是一个强大的字符串匹配工具。
3、正则表达式书写的两种风格(JS、Perl)
var re = new RegExp("a"); // JS风格
var re = new RegExp("a","i"); // i表示忽略大小写,那字符i怎么办? \\i
var re = /a/; // perl风格
var re = /a/i;
三、搭配正则表达式的三个方法(search、match、replace)
1、search:找到字符的位置。
使用方法:str.search(“字符”/字符变量);
var str = "abcdefg";
var re = new RegExp("a"); // JS风格
var re = /a/; // perl风格
str.search(re); // 0
2、match:把找到的字符串提取出来。
使用方法:待匹配字符串.match(正则表达式),返回数组。
例子:找出字符串中的所有数字。
var str = "asdf 34 656 cvs33";
var re = /\d+/;
str.match(re); // 34,656,33
// \d:数字0-9
// +:若干(多少都可以)
3、replace:替换字符串,返回替换后的字符串。
使用方法:str.replace(正则表达式,"被替换字符串");
例子:敏感词过滤。
四、元字符(方括号[ ])
1、类型:
[abc]型:或。[ ]中的任意一个都可以。
[a-z]、[0-9]型:范围。
[^a-z]、[^0-9]型:排除。
组合型:[^a-z0-9]——除了英文和数字
2、例子:小说网站
过滤HTML标签:模拟采集器中的一部分。
HTML标签:<除了<>以外的任意字符串>
.(点):任意字符。
\w:英文、数字、下划线:[a-z0-9_]
\s:空白字符
\D:[^0-9]
五、量词——个数
{n}:正好出现n次。例如:\d{8}
{n,m}:最少n次,最多m次。
{n,}:最少n次,最多不限
+:{1,},表示最少1次。
?:{0,1},表示可以有,可以没有。例如固话号码中的区号。
*:{0,},表示所有。
六、实例——校验邮箱
邮箱规则:一串英文、数字、下划线 @ 一串英文、数字 . 一串英文
一串英文、数字、下划线:\w+
@符号:@
一串英文、数字:[a-z0-9]+
.符号:\.
一串英文:[a-z]+
JavaScript代码:
var re = /^\w+@[a-z0-9]+\.[a-z]+$/i;
re.test(str); // 判断str是否符合re标准,符合返回true,否则为false。
注意:test方法,只要字符串一部分符合要求,返回true。因此加上^和$符号,表示从头到尾都要满足正则表达式。
^:行首(字符串开头)
$:行尾(字符串结尾)