关于正则表达式 ^ ,$ ,/g 的作用

时间:2024-02-25 16:32:15

在正则中 ^ 表示匹配字符串的开始位置

\'12a21\'.replace(/^\d/g,\'\')
//  输出结果为 2a21 只有字符串开始位置的\'1\'被匹配到,但\'a\'后面的\'21\'没有匹配到

\'12222a21\'.replace(/^\d{2}/g,\'\')
// 输出结果为 "222a21" 字符串开始位置的\'12\'被匹配到,但\'a\'后面的\'21\'没有匹配到两位数字被匹配到

\'12222a21\'.replace(/^\d{2,}/g,\'\')
// 输出结果为 "a21" 字符串开始位置的数字都被匹配到,但\'a\'后面的\'21\'没有匹配到两位数字被匹配到

\'12222a21\'.replace(/\d{2,}/g,\'\')
// 输出结果为 "a" 字符串中所有的数字都被匹配到

但是当 ^ 在中括号中时,不在表示匹配开始位置,而是表示不匹配某字符集合

\'122ss22a2b1\'.replace(/[^\d]/g,\'\')
// 输出结果为:"1222221",非数字的所有字符都被匹配

在正则中/g 表示替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串

\'12222a21\'.replace(/[\d]/,\'\')
// 输出结果为:"2222a21" ,只有第一个数字被替换

\'12222a21\'.replace(/[\d]/g,\'\')
// 输出结果为:"a",所有被匹配的数字都被替换

 

在正则中 $ 表示匹配末尾位置

\'12222a21\'.replace(/[\d]$/g,\'\')
//输出结果为:"12222a2",只有末尾的1匹配

\'12222a21\'.replace(/[\d]{1,}$/g,\'\')
//输出结果为:"12222a" ,所有末尾被匹配