我必须编写一个正则表达式,它将掩盖字符串中的所有数字。
例如:
Input: 1234567890 expiry date is 1211
Output: ********* expiry date is ****
或
Input: 1211 and number is 1234567890</p>
Output: **** and number is *********
我正在使用:
var myregexp = /^(?:\D*\d){3,30}\D*$/g;<br/><br/>
使用上面的正则表达式掩盖整个字符串。
答案 0 :(得分:4)
您实际使用的正则表达式并未给出预期结果,因为它与整个字符串匹配,这就是为什么整个字符串被屏蔽。
这就是你需要的:
var myregexp = /\d/g;
您每次只需要匹配\d
并将其替换为*
,您可以在此工作演示中看到它。
<强>演示:强>
var str = "1234567890 expiry date is 1211";
var myregexp = /\d/g;
console.log(str.replace(/\d/g, "*"));
&#13;
修改强>
如果您想匹配空格和特殊字符,例如_
和.
,您可以使用以下正则表达式:
var myregexp = /[\d\._\s]/g;