Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JS替换字符串?_Javascript_Regex - Fatal编程技术网

Javascript 如何使用JS替换字符串?

Javascript 如何使用JS替换字符串?,javascript,regex,Javascript,Regex,在html文件的某个地方,我有以下几行: /*my lines*/ $(function(){i=1;}); /**********/ 我需要使用js动态替换这行代码 /*my lines*/ $(function(){i=2;}); /**********/ 这就是我试过的 var outerHTML = document.documentElement.outerHTML; outerHTML = outerHTML.replace("/*my lines*/","/*my line

在html文件的某个地方,我有以下几行:

/*my lines*/ $(function(){i=1;}); /**********/
我需要使用js动态替换这行代码

/*my lines*/ $(function(){i=2;}); /**********/  
这就是我试过的

var outerHTML = document.documentElement.outerHTML;
outerHTML = outerHTML.replace("/*my lines*/","/*my lines*/$(function(){i=2;});"); 
但我的正则表达式不正确。我怎样才能更换它?如何定位以/*my lines*/开头并以/**********结尾的子字符串

试试这个

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

不要使用quote来声明正则表达式。因为在代码中,javascript认为您使用的是字符串而不是正则表达式


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

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

outerHTML = outerHTML.replace(/(\/\*my lines\*\/)[^\/]+(\/\*+\/)/g,"$1 $(function(){i=2;}); $2");
将提供您的答案:

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

但是,如果您想使用innerHTML,则需要做一些准备 能够轻松可靠地使用它。首先,必须给出元素 您希望更改一个id。有了该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'/>

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

您只想将i=1替换为i=2?你为什么不把它放在外面呢?replacei=1,i=2;还有,我的正则表达式不正确是什么意思?因为i=1可能不是唯一的。我有/*my lines*/string来确保我正在替换正确的I=1。另外,我不知道/*my lines*/$函数{I=1;};/***********/中有什么。它可能是任何东西。我需要根据字符串的开头/*my lines*/和结尾/**********/来定位字符串,您可以尝试:{/*REPLACE*/I=1;}outerHTML.REPLACE/*REPLACE*/I=1,/*REPLACE*/I=2;
<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'/>