我必须编写一个正则表达式,它将屏蔽字符串中的所有数字。
例如:
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/>
使用上述正则表达式屏蔽了整个字符串。
最佳答案
您实际使用的 Regex 没有给出预期的结果,因为它匹配整个字符串,这就是整个字符串被屏蔽的原因。
这是你需要的:
var myregexp = /\d/g;
你只需要每次匹配\d
并替换为*
,你可以在这个工作Demo中看到它。
演示:
var str = "1234567890 expiry date is 1211";
var myregexp = /\d/g;
console.log(str.replace(/\d/g, "*"));
编辑:
如果你想匹配空格和特殊字符,如 _
和 .
,你也可以使用下面的正则表达式:
var myregexp = /[\d\._\s]/g;
关于javascript - JavaScript 中的正则表达式仅屏蔽字符串中的数字和特殊字符(/、空格、-),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43544916/