1.金额每3位添加逗号(两种方式)
//这里使用两种方式,使用一种删除第二种即可
function thousand(num) {
// 思想1. 找见第一个数字后面成3倍数的数字,然后把这些匹配的数字转换成 “数字,”的形式,就可以完成千分位表示
// 思想2. 找见数字中间的空位,比如123,找见1和2中间,2和3中间,把符合条件的转换为","即可
return (num+"").replace(/\d(?=(\d{3})+$)/g, "$&,")+" "+ num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
// 第一种方式解释
// \d 表示匹配一个[0-9]字符
// ?= 表示限定后面的字符
// \d{3}+表示匹配3个数,一个或多个
// $ 表示结尾符,代表这就是结尾不可以有其他数字存在了
// $&, 表示最近一次的匹配项,把它变成$&,的形式就相当于加逗号
// 第二种方式解释
// \B \b匹配的是一个位置,这个位置是一个单词的边界。而我们的\B则与之相反,不属于\b'的位置都可以被\B`匹配到。
// 也就是中间值,如一串数字123,他匹配的是1和2,2和3之间的位置
// (?!\d) 后面不能跟相应的内容这里表示后面不能有数字\d存在
}
console.log(thousand(1234567890)); //1,234,567,890 1,234,567,890
2.正则表达式的replace,替换匹配字符
// replace进行将匹配的字符转换成对应字符
var string = 'hhh是HHH';
var pattern = /hhh|HHH/g; //g 全局匹配
var result = string.replace(pattern,function($0){ //敏感词过滤,$0是代表正则匹配成功的字符串
var s = '';
console.log($0);
for(var i = 0; i < $0.length; i++){
s+= '*';
}
return s;
})
console.log(result); //***是***