关于正则的js方法

96 阅读2分钟

String的4种使用正则表达式的方法

search()

search()用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串

参数 :字符串|RegExp 对象

返回值: 返回第一个与 regexp 相匹配的子串的起始位置,若没找到则返回-1

该方法不支持全局搜索

let testStr = 'javaScript'
testStr.search(/script/i) //4
testStr.search('Script')  //4
testStr.search('script') //-1

replace()

参数: 第一个 字符串 | RegExp 对象 第二个 字符串 | 函数 返回: 返回替换后的字符串

let testStr = 'javaScript'
let newStr = testStr.replace('/a/g','b') //jbvbScript
等价于 newStr = testStr.replaceAll('a','b')
//传回调函数
 const str = 'abcdefjabcd'
 const newStr = str.replace('a', (a,b,c) => {
    console.log(a, b, c) // a 0 abcdefjabcd
    return 'p'
 }) // 使用正则替换全局字符
 console.log(newStr) // pbcdefjabcd

match()

参数 RegExp 对象 返回值 存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。 如果没找到匹配结果返回 null

split()

参数 (字符串或正则表达式,指定返回的数组的最大长度) 返回值 一个字符串数组

RegExp对象方法

5个属性 source 只读字符串 包含正则表达式的文本 global 只读布尔 表达式是否带修饰符g ignoreCase 只读布尔 表达式是否带修饰符 i multiline 只读布尔 表达式是否带修饰符 m lastIndex 可读写整数 2个方法 exec() 参数 字符串 返回 数组,匹配不到返回null,返回的数组含义如下:

  • 数组第一个元素是于与正则表达式相匹配的文本

  • 数组的第二个元素是与RegExp对象的第一个子表达式(即分组小括号里面的)相匹配的文本

  • 数组的第三个元素是与RegExp对象的第二个子表达式相匹配的文本(如果有的话),以此类推

var str="Hello world!"; //查找"Hello"
var patt=/Hello/g;
var result=patt.exec(str); //["Hello"]

test() 检测一个字符串是否匹配某个模式 参数 字符串 返回值 布尔值

var str="Hello world!"; //查找"Hello" 
var patt=/Hello/g; 
var result=patt.test(str); // true