在前端开发中,字符串操作是非常常见的。但是,有时候我们需要对字符串进行大小写不敏感的操作,这就需要用到字符串修饰符了。ES2020 新增了一些字符串修饰符,本文将详细介绍这些修饰符,并给出一些示例代码。
i 修饰符
i 修饰符表示大小写不敏感。使用 i 修饰符后,匹配时会忽略大小写。例如:
const str = 'Hello World'; const reg = /hello/i; console.log(reg.test(str)); // true
在上面的代码中,我们使用了 i 修饰符,而正则表达式中的 hello 会匹配到字符串中的 Hello。
g 修饰符
g 修饰符表示全局匹配。使用 g 修饰符后,会匹配字符串中所有符合条件的子串。例如:
const str = 'Hello World'; const reg = /l/g; console.log(str.match(reg)); // ["l", "l", "l"]
在上面的代码中,我们使用了 g 修饰符,而正则表达式中的 l 会匹配到字符串中所有的 l。
m 修饰符
m 修饰符表示多行匹配。使用 m 修饰符后,会匹配多行文本中所有符合条件的子串。例如:
const str = 'Hello\nWorld'; const reg = /^h/gmi; console.log(str.match(reg)); // ["H"]
在上面的代码中,我们使用了 m 修饰符,而正则表达式中的 ^h 会匹配到字符串中以 h 开头的行。
s 修饰符
s 修饰符表示点 (.) 匹配任何字符,包括换行符。使用 s 修饰符后,会匹配所有字符,包括换行符。例如:
const str = 'Hello\nWorld'; const reg = /Hello.sWorld/s; console.log(reg.test(str)); // true
在上面的代码中,我们使用了 s 修饰符,而正则表达式中的 . 匹配到了换行符。
u 修饰符
u 修饰符表示 Unicode 匹配。使用 u 修饰符后,会正确匹配 Unicode 字符。例如:
const str = '\uD842\uDFB7'; const reg = /\uD842/u; console.log(reg.test(str)); // true
在上面的代码中,我们使用了 u 修饰符,而正则表达式中的 \uD842 匹配到了一个 Unicode 字符。
y 修饰符
y 修饰符表示粘连匹配。使用 y 修饰符后,会从上次匹配的位置开始匹配。例如:
const str = 'Hello World'; const reg = /l/y; console.log(reg.exec(str)); // ["l"] console.log(reg.exec(str)); // ["l"] console.log(reg.exec(str)); // null
在上面的代码中,我们使用了 y 修饰符,而正则表达式中的 l 会从上次匹配的位置开始匹配。
总结
ES2020 新增的字符串修饰符可以帮助我们解决大小写敏感的问题,同时也可以更加精确地匹配字符串。但是,需要注意的是,不同的修饰符有不同的用法和限制,需要根据实际情况选择合适的修饰符。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656318dcd2f5e1655dcc999c