正则表达式学习

正则(规则)表达式(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

你可能感兴趣的:(正则表达式学习)