javascript中的动态全局值替换

时间:2012-03-28 11:21:16

标签: javascript

<html>
<body>

<script type="text/javascript">

var str="Welcome to Microsoft! ";
var val="Microsoft!";

document.write(str.replace('/'+val'+/gi', "W3Schools"));

</script>

</body>
</html>

这不起作用,如何动态使用val?

2 个答案:

答案 0 :(得分:2)

您需要为replace()创建一个正则表达式的参数。如果你把它放在引号中,它只是一个字符串。改为使用RegExp构造函数:

document.write(str.replace(new RegExp(val, 'gi'), "W3Schools"));

答案 1 :(得分:1)

您无法通过字符串连接构建正则表达式文字

尝试:

var str="Welcome to Microsoft! ";
var val="Microsoft!";

document.write(str.replace(new RegExp(val, 'gi'), "http://www.w3fools.com"));

参考:https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions