val.toString().replace(/^(\d)$/,'0$1')

如题匹配[0-9]的数字,在匹配到的数字前面补0。

那$1是什么意思?带着这个问题往下看

表示第一个子表达式匹配的内容;

RegExp属性是javascript内置的全局对象,用于返回正则表达式模式中某个子表达式匹配的文本,正则表达式中的子表达式(小括号内的表达式)可以有多个,但是RegExp属性只保存前9个匹配值(RegExp.$[1-9]);

需要注意在使用replace进行替换时可以不用RegExp。

//匹配电话
(84362672).toString().replace(/(8)(\d)(\d{6})/g,'$1$2******');
//匹配日期
var str = '1991-02-15',
    reg =  /^(\d{4})-(\d{2})-(\d{2})$/;
    
    reg.test(str);

console.log(RegExp.$1, RegExp.$2, RegExp.$3);
    原文作者:1144169197
    原文地址: https://www.jianshu.com/p/6fa6269b075b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞