如何使用JS替换字符串?

时间:2015-05-18 14:00:32

标签: javascript regex

在html文件的某处,我有以下几行:

/*my lines*/ $(function(){i=1;}); /**********/

我需要使用此{/ p>使用js动态替换此行

/*my lines*/ $(function(){i=2;}); /**********/  

这就是我试过的

var outerHTML = document.documentElement.outerHTML;
outerHTML = outerHTML.replace("/*my lines*/","/*my lines*/$(function(){i=2;});"); 

但我的正则表达不正确。我怎样才能更换它?如何找到以/*my lines*/开头并以/**********/结尾的子字符串?

4 个答案:

答案 0 :(得分:2)

试试这个

console.log(str.replace(/\/\*my lines\*\/.*\/\*\*\*\*\*\*\*\*\*\*\//,"/*my lines*/$(function(){i=2;});"));

答案 1 :(得分:2)

不要使用引号来声明正则表达式。因为在您的代码中,javascript认为您使用的是string而不是regex

outerHTML.replace(/\/\*my lines\*\//g,"/*my lines*/$(function(){i=2;});"); 

答案 2 :(得分:2)

This将提供您的答案:

  

每个HTML元素都有一个innerHTML属性,用于定义HTML   代码和该元素的开头和之间出现的文本   结束标签。通过在某个用户之后更改元素的innerHTML   互动,你可以制作更多的互动页面。

     

但是,使用innerHTML需要做一些准备工作   能够轻松可靠地使用它。首先,你必须给出元素   你想改变一个身份证。有了这个id就可以了   使用getElementById函数,该函数适用于所有浏览器。

     

完成设置后,您现在可以操作文本了   元件。首先,让我们尝试更改粗体标记内的文本。

示例:

<script type="text/javascript">
function changeText(){
    document.getElementById('boldStuff').innerHTML = 'Fred Flinstone';
}
</script>
<p>Welcome to the site <b id='boldStuff'>dude</b> </p> 
<input type='button' onclick='changeText()' value='Change Text'/>

然而,这是通过用户交互,您可以更改它,以便在另一个函数中调用此函数将触发此操作。

答案 3 :(得分:1)

根本不是正则表达式,这是一个字符串。 replace方法不会尝试将字符串转换为正则表达式,它只会替换字符串的第一次出现。

如果使用正则表达式文字,则需要转义正则表达式中的*个字符和/个字符:

outerHTML = outerHTML.replace(/(\/\*my lines\*\/)[^\/]+(\/\*+\/)/g,"$1 $(function(){i=2;}); $2");