?在正则表达式中 ^ 表示匹配字符串的开始位置
// 输出结果为 2a21:只有字符串开始位置的'1'被匹配到,但'a'后面的'21'没有匹配到
'12a21'.replace(/^\d/g,'') // 字符串中开头的一组空字符替换为""
// 输出结果为 "222a21" :字符串开始位置的'12'被匹配到,但'a'后的'21'两位数字没有匹配到
'12222a21'.replace(/^\d{2}/g,'')
// 输出结果为 "a21":字符串开始位置的数字都被匹配到,但'a'后面的'21'没有匹配到
'12222a21'.replace(/^\d{2,}/g,'') // 从字符串开头开始匹配数量大于等于2个的数字
// 输出结果为 "a" :字符串中所有的数字都被匹配到
'12222a21'.replace(/\d{2,}/g,'')
但是,当 ^ 在中括号中时,不在表示匹配开始位置,而是表示不匹配某字符集合
// 输出结果为:"1222221":非数字的所有字符都被匹配
'122ss22a2b1'.replace(/[^\d]/g,'')
??在正则中g表示替换字符串中每个被匹配的字符,否则只替换字符串中第一个被匹配的字符
// 输出结果为:"2222a21" :只有第一个数字被替换
'12222a21'.replace(/[\d]/,'')
// 输出结果为:"a":字符串中所有的数字都会被匹配到,然后被替换
'12222a21'.replace(/[\d]/g,'')
??在正则中 $ 表示匹配末尾位置
// 输出结果为:"12222a2":只有末尾的1匹配
'12222a21'.replace(/[\d]$/g,'')
// 输出结果为:"12222a" :末尾所有被匹配
'12222a21'.replace(/[\d]{1,}$/g,'')
? 相关参考:【JS高级】正则入门基础—关于你想知道的正则表达式?