RegExp内置对象
1.创建形式
- 构造函数
var re = new RegExp('j.*t');
- 正则文本标记法
var re = /j.*t/
2.RegExp属性
- global(默认值false):是否找出所有匹配。
- ignoreCase(默认值false):是否忽略大小写。
- multiline(默认值false):是否跨行搜索。
- lastIndex(默认值0):搜索开始的索引。
- source:储存正则表达式匹配模式的字符串。
1-3属性可以分别缩写为:g,i,m。
匹配形式如下:
//构造函数
var re = new RegExp('j.*t','gmi');
//正则文本标记法
var re = /j.*t/gmi;
3.RegExp内置方法
(1) test()
接受要匹配的字符串,返回一个是否匹配到内容的布尔值。
(2) exec()
接受要匹配的字符串,返回一个数组,包含匹配到的字符串。
4.以正则表达式为参数的字符串方法
包含match( ), search( ), replace( ), split( )。
(1) match()
返回包含匹配内容的数组。
var s = new String("HelloJavaScriptWorld");
// match()
s.match(/a/); //['a']
s.match(/a/g); //['a','a']
(2) search()
返回第一个匹配内容所在的位置。
var s = new String("HelloJavaScriptWorld");
// search()
s.search(/j.*t/i); // 5
(3) replace()
将匹配到的字符串替换成指定的字符串。
var s = new String("HelloJavaScriptWorld");
//replace() 其中$&表示匹配到的字符, $1,$2表示分组
s.replace(/[A-Z]/g, "-$&"); //-Hello-Java-Script-World
回调式替换:
var str = 'backgroundColor';
function replaceCallBack(match) {
return '-' + match.toLowerCase();
}
str.replace(/[A-Z]/g,replaceCallBack);
// 返回 'background-color'
(4) split()
根据RegExp将目标字符串分割成若干个数组元素。
var csv = 'one, two,three ,four';
csv.split(',');
// 返回["one", " two", "three ", "four"]
// 以上结果会有一些多余的空格,为了去除空格,采用以下代码
csv.split(/\s*.\s*/);
// 返回["one", "two", "three", "four"]
(5) 用字符串代替过于简单的regexp对象
"test".replace('t','r'); // "rest"
// 等价于以下代码
"test".replace(new RegExp("t"), 'r'); // "rest"
// 注意:字符串只会匹配一次
// 注意:字符串只会匹配一次
// 注意:字符串只会匹配一次
// 如果想把字符串中所有的a替换为b ==>
"Javascript".replace(/a/g, 'b');// 'Jbvbscript'