我需要替换所有数字。
我的函数只替换了第一个数字。
var s = "04.07.2012";
alert(s.replace(new RegExp("[0-9]"), "X")); // returns "X4.07.2012"
// should be XX.XX.XXXX"
我需要替换所有数字。
我的函数只替换了第一个数字。
var s = "04.07.2012";
alert(s.replace(new RegExp("[0-9]"), "X")); // returns "X4.07.2012"
// should be XX.XX.XXXX"
s.replace(new RegExp("[0-9]", "g"), "X")
或者,也许更漂亮的是,使用内置的文字正则表达式语法:
.replace(/[0-9]/g, "X")
X
?例如使用 \U2022
? - Cmagreplace(/[0-9]/g, '\u2022');
- Cmag使用
s.replace(/\d/g, "X")
这将替换所有出现的内容。 g
表示全局匹配,因此不会在第一次匹配后停止。
或者继续使用您的 RegExp
构造函数:
s.replace(new RegExp("\\d", "g"), "X")
找到数字并用指定的字符串替换。这可以通过两种方法实现:
使用正则表达式字面量
使用关键字RegExp对象
使用正则表达式字面量:
<script type="text/javascript">
var string = "my contact number is 9545554545. my age is 27.";
alert(string.replace(/\d+/g, "XXX"));
</script>
**输出:**我的联系电话是XXX。我的年龄是XXX。
了解更多详情:
http://www.infinetsoft.com/Post/How-to-replace-number-with-string-in-JavaScript/1156
/g
修饰符用于执行全局匹配,而不是在找到第一个匹配项后停止
您可以使用\d
表示数字,因为它比[0-9]
更短。
JavaScript:
var s = "04.07.2012";
echo(s.replace(/\d/g, "X"));
输出:
XX.XX.XXXX
你忘记添加全局运算符了。使用这个:
var s = "04.07.2012";
alert(s.replace(new RegExp("[0-9]","g"), "X"));
[0-9]
可以简化为\d
。 - nhahtdh