正则表达式 (regular expression) 描述了一种字符串匹配的模式, 可以用来检查一个字符串是否含有某种子串, 将匹配的子串做替换或者从某个字符串中取出符合某个条件的子串等.
正则表达式的创建方式
字面量创建方式
实例创建方式
示例:
- var reg = /pattern/flags // 字面量创建方式
- var reg = new RegExp(pattern,flags); // 实例创建方式
pattern: 正则表达式
flags: 标识(修饰符)
标识主要包括:
1. i 忽略大小写匹配
2. m 多行匹配, 即在到达一行文本末尾时还会继续寻常下一行中是否与正则匹配的项
3. g 全局匹配 模式应用于所有字符串, 而非在找到第一个匹配项时停止
字面量创建方式和构造函数创建方式的区别:
1, 字面量创建方式不能进行字符串拼接, 实例创建方式可以
- var regParam = 'cm';
- var reg1 = new RegExp(regParam+'1');
- var reg2 = /regParam/;console.log(reg1); // /cm1/
- console.log(reg2); // /regParam/
2, 字面量创建方式特殊含义的字符不需要转义, 实例创建方式需要转义
- var reg1 = new RegExp('\d'); // /d/
- var reg2 = new RegExp('\\d') // /\d/
- var reg3 = /\d/; // /\d/
使用字符串方法:
在 JavaScript 中, 正则表达式通常用于两个字符串方法 : search() 和 replace().
search() 方法 用于检索字符串中指定的子字符串, 或检索与正则表达式相匹配的子字符串, 并返回子串的起始位置.
replace() 方法 用于在字符串中用一些字符替换另一些字符, 或替换一个与正则表达式匹配的子串.
1,search() 方法使用正则表达式
使用正则表达式搜索 "Runoob" 字符串, 且不区分大小写:
- var str = "Visit Runoob!";
- var n = str.search(/Runoob/i);
输出结果: 6
2,search() 方法使用字符串
search 方法可使用字符串作为参数. 字符串参数会转换为正则表达式:
- var str = "Visit Runoob!";
- var n = str.search("Runoob");
2,replace() 方法使用正则表达式
实例:
使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 Runoob :
- var str = document.getElementById("demo").innerhtml;
- var txt = str.replace(/microsoft/i,"Runoob");
结果输出为: Visit Runoob!
replace() 方法使用字符串
replace() 方法将接收字符串作为参数:
- var str = document.getElementById("demo").innerHTML;
- var txt = str.replace("Microsoft","Runoob");
使用 RegExp 对象
在 JavaScript 中, RegExp 对象是一个预定义了属性和方法的正则表达式对象.
1, 使用 test()
test() 方法是一个正则表达式方法.
test() 方法用于检测一个字符串是否匹配某个模式, 如果字符串中含有匹配的文本, 则返回 true, 否则返回 false.
以下实例用于搜索字符串中的字符 "e":
- var patt = /e/;
- patt.test("The best things in life are free!");
输出: true
2, 使用 exec()
exec() 方法是一个正则表达式方法.
exec() 方法用于检索字符串中的正则表达式的匹配.
该函数返回一个数组, 其中存放匹配的结果. 如果未找到匹配, 则返回值为 null.
以下实例用于搜索字符串中的字母 "e":
/e/.exec("The best things in life are free!");
输出: e
来源: http://www.css88.com/qa/javascript/11512.html