正则(规则)表达式(Regular Expression)
表达风格
JS风格:new RegExp("表达式规则,其实就是perl写法,注意的是表示'/'的时候要再加上转义字符'/', "i或g");
perl风格:/表达式/i或g
其中i表示ignore(不区分大小写),g表示global(不单单取一个,全局都要取)
表达方法
转义字符
\d------digital数字0-9,
\w------word数字字母横杆0-9a-z_,
\s------空格,分隔符
\b-----分割符,如逗号,空格
其中写法如为大写字母,则表示排除的意思
任意字符
[abc]
范围
[a-z] [0-9]
排除
[^a] [^0-9] [^\d]
组合
[a-z0-9A-Z]
量词
{1,9} 最小取1个,最大取9个
{0,1}零次或1次,等效于"?"
{1,}最小取1个,等效于"+"
{0,}任意次,不建议使用,等效于"*"
{3}正好取3个
表达首尾
"^"首,写最前面,"$"尾,写最后面
表达所有字符
"."
配合字符串方法使用
str.search("abc"):字符串搜索,返回字符串第一次出现的位置,如搜索不到,返回-1;
str.match("abc"):获取匹配的项目,返回数组;
str.replace():替换所有匹配,并返回替换后字符串;
str.charAt(3):返回所在位置字符
str.substring("1","3") :获取子字符串,返回位置1到位置2的字符串,注意不是位置3
str.split(",") 分割字符串,获得数组,如根据逗号作为分割依据
正则表达式方法
re.test(str);
正则使用例子
获取QQ号:var re = /[1-9]\d{1,10}/
邮箱检验: var re = /^\w+@[0-9a-z]+\.[a-z]{2,4}/
偷小说: var re = /<[^<> ]+>/g
筛选中文:var re = / [\u4e00-\u9fa5]/
完美getByClass: var re = /\b"classname"\b/
去空格: var re = /\s+/g
网友评论