当我们需要在JavaScript中进行字符串匹配、替换或者提取操作时,常常需要用到正则表达式。在JavaScript中,我们可以使用两种不同的方法来使用正则表达式。
方法一:RegExp对象的方法
RegExp对象是JavaScript内置的正则表达式对象,我们可以使用它的方法来处理字符串。
1. 创建RegExp对象
我们可以使用RegExp对象的构造函数来创建一个正则表达式对象:
let reg = new RegExp('abc');
也可以使用字面量表示法来创建一样的正则表达式对象:
let reg = /abc/;
这两种写法是等价的。其中,'abc'表示我们要查找的模式。
2. RegExp对象的方法
RegExp对象提供的方法可以用来在字符串中查找、替换和提取符合指定模式的子字符串。
其中,常用的方法有:
- test(str)
该方法用来检查字符串中是否存在指定模式的匹配。如果存在,返回true;否则返回false。
示例:
javascript
let reg = /abc/;
let str = 'abcde';
console.log(reg.test(str)); // true
- exec(str)
该方法用来在字符串中查找指定模式的匹配,并返回一个数组。数组中存放的是匹配到的子串以及捕获分组的内容。
示例:
javascript
let reg = /ab(c)/;
let str = 'abcde';
let result = reg.exec(str);
console.log(result); // ["abc", "c", index: 0, input: "abcde", groups: undefined]
console.log(result[0]); // "abc"
console.log(result[1]); // "c"
console.log(result.index); // 0
console.log(result.input); // "abcde"
- replace(regexp|substr, newSubStr|function)
该方法用来替换字符串中符合指定模式的子串。
示例:
javascript
let reg = /abc/;
let str = 'abcdefg';
let newstr = str.replace(reg, '123');
console.log(newstr); // "123defg"
方法二:字符串对象的方法
在字符串对象中,也提供了一些方法来调用正则表达式处理字符串。
1. 字符串的方法
常用的字符串方法有:
- search(regexp)
该方法用来在字符串中查找指定模式的匹配。如果存在,就返回匹配的起始位置;否则返回-1。
示例:
javascript
let str = 'abcde';
let index = str.search('abc');
console.log(index); // 0
- match(regexp)
该方法用来在字符串中查找并返回指定模式的匹配结果。返回的结果是一个数组,数组中第一个元素是匹配到的子串,后面的元素是捕获分组的内容。
示例:
javascript
let str = 'abcde';
let result = str.match(/ab(c)/);
console.log(result); // ["abc", "c", index: 0, input: "abcde", groups: undefined]
console.log(result[0]); // "abc"
console.log(result[1]); // "c"
console.log(result.index); // 0
console.log(result.input); // "abcde"
- replace(regexp|substr, newSubStr|function)
该方法用来替换字符串中符合指定模式的子串。
示例:
javascript
let str = 'abcdefg';
let newstr = str.replace(/abc/, '123');
console.log(newstr); // "123defg"
2. 字符串对象与正则表达式结合使用
有些时候,我们需要利用字符串对象和正则表达式相互配合,来完成一些特殊的操作。
- split(regexp|substr, limit)
该方法用来将一个字符串分割成多个子串,并将分割后的子串存入一个数组中,返回数组。
示例:
javascript
let str = '123,456,789';
let arr = str.split(',');
console.log(arr); // ["123", "456", "789"]
如果传入了正则表达式,也可以根据正则表达式进行分割:
javascript
let str = '1-2-3 , 4-5-6';
let arr = str.split(/-|\s*,\s*/);
console.log(arr); // ["1", "2", "3", "4", "5", "6"]
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript里的两种使用正则的方法 - Python技术站