码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2017-04-03 09:21:10      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:替换   数字   character   测试   数据验证   split()   下划线   电话   表达   

1、正则表达式
正则表达式是描述字符模式的对象
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为”元字符")组成的文字模式
正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合

用途:
数据验证(如测试字符串,验证其中是否为电话号码模式)
替换文本
基于模式从字符串中提取子字符串

2、修饰符 i 执行对大小写不敏感的匹配。 g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
3、模式 var pat_1 = /fftu/gi; 其中,fftu为模式,gi为修饰符
4、单词字符 a-z A-Z 0-9 下划线
5、元字符 Metacharacter,拥有特殊含义的字符 . 查找单个字符,除了换行和行结束符。 \w 查找单词字符。 \W 查找非单词字符。 \d 查找数字。 \D 查找非数字字符。 \s 查找空白字符。 \S 查找非空白字符。 \b 匹配单词边界。 \B 匹配非单词边界。 \0 查找 NUL 字符。 6、量词 n+ 匹配任何包含至少一个 n 的字符串。 n* 匹配任何包含零个或多个 n 的字符串。 n? 匹配任何包含零个或一个 n 的字符串。 n{X} 匹配包含 X 个 n 的序列的字符串。 n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。 n{X,} 匹配包含至少 X 个 n 的序列的字符串。 n$ 匹配任何结尾为 n 的字符串。 ^n 匹配任何开头为 n 的字符串。 ?=n 匹配任何其后紧接指定字符串 n 的字符串。 ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

7、正则表达式的2种写法

var pat_1 = /w/gi;

var pat_1 = new RegExp("\w", "gi”);

即:// 等价于 "\"

 

var pat_1 = /\w/gi;

var pat_1 = new RegExp("\\w", "gi");


8、常用函数

字符串方法不会改变原字符串

 

match() 找到一个或多个正则表达式的匹配。

document.innerHTML = “string”.match(pattern); //pattern

 

 

test() 检索字符串中指定的值。返回 true 或 false。

document.innerHTML = pattern.test(“string”);

  

 

exec() 检索字符串中指定的值。返回找到的值,并确定其位置

document.innerHTML = pattern.exec(“string”);

 

 

split() 拆分字符串

p_2.innerHTML = p_1.innerHTML.split(""); //将字符串分割为字符数组

p_2.innerHTML = p_1.innerHTML.split(“ "); //将字符串分割为字符串数组

p_2.innerHTML = p_1.innerHTML.split("")[4]; //split()返回一个字符串数组

p_2.innerHTML = p_1.innerHTML.split("", 3); //返回数组的前3个元素

 

 

search() 返回模式的起始位置,未找到返回-1

p_2.innerHTML = p_1.innerHTML.search(/wfftu/gi);

p_2.innerHTML = p_1.innerHTML.search(“fftu”);

 

 

replace() 返回替换后的字符串

p_2.innerHTML = p_1.innerHTML.replace("W", "");

 

 

9、方括号

查找某个范围内的字符

var pat_1 = /[f-u]/gi;

var pat_1 = new RegExp("[f-u]", "gi");

p_2.innerHTML = p_1.innerHTML.match(pat_1);

 

 

不在某个范围内的字符

var pat_1 = /[^f-u]/gi;

var pat_1 = new RegExp("[^f-u]", “gi");

 

 

查找给定集合内的字符

var pat_1 = /[fftu]/gi;

var pat_1 = new RegExp("[fftu]", “gi");

 

 

查找给定集合外的字符

var pat_1 = /[^fftu]/gi;

var pat_1 = new RegExp("[^fftu]", “gi”);

 

 

数字集合

var pat_1 = /[0-4]/gi;

var pat_1 = RegExp("[^3-5]", “gi");

 

 

[h.t]和h.t的区别

前者查找到的是单个字符 //h和t

后者查找到的是单词 //hot,hat

元字符. 一个.代表一个字符

 

 

 

正则表达式

标签:替换   数字   character   测试   数据验证   split()   下划线   电话   表达   

原文地址:http://www.cnblogs.com/jiaoxuanwen/p/6661285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!