使用javascript替换textarea中所有行中的子字符串

使用javascript替换textarea中所有行中的子字符串,javascript,replace,textarea,Javascript,Replace,Textarea,我试图用javascript替换所有行中的特定字符串。这是样品 www.youtube.com/watch?v=s8IJkexsjlI&index=37&list=PLB03EA9545DD188C3 www.youtube.com/watch?v=PYOQLPW6ewQ&index=38&list=PLB03EA9545DD188C3 www.youtube.com/watch?v=ejRmaOHs1rk&index=39&list=PLB

我试图用javascript替换所有行中的特定字符串。这是样品

 www.youtube.com/watch?v=s8IJkexsjlI&index=37&list=PLB03EA9545DD188C3
 www.youtube.com/watch?v=PYOQLPW6ewQ&index=38&list=PLB03EA9545DD188C3
 www.youtube.com/watch?v=ejRmaOHs1rk&index=39&list=PLB03EA9545DD188C3
我想替换“=”后面的11个字符,如何用变量替换 like var='hello123456'

因此,输出将是

www.youtube.com/watch?v=hello123456&index=37&list=PLB03EA9545DD188C3
www.youtube.com/watch?v=hello123456&index=38&list=PLB03EA9545DD188C3
www.youtube.com/watch?v=hello123456&index=39&list=PLB03EA9545DD188C3

这是一个非常简单的解决方案,没有任何幻想,所以你可以很容易地理解发生了什么

var originalStr = 'www.youtube.com/watch?v=s8IJkexsjlI&index=37&list=PLB03EA9545DD188C3';
var textToReplaceWith = 'hello123456';
var newStr = '';

// get index where unwanted text starts
var index = originalStr.indexOf('v=') + 2;

newStr = originalStr.substring(0, index); //take part just before the unnecessary text
newStr += textToReplaceWith; //add string you want
newStr +=  originalStr.substring(index + 11, originalStr.length) // take text part after unwanted text

这是正则表达式解决方案,请参见下面的代码片段

document.addEventListener(“DOMContentLoaded”,function()){
var link=“www.youtube.com/watch?v=s8IJkexsjlI&index=37&list=PLB03EA9545DD188C3”;
var value=“hello123456”;
link=link.replace(/\?v=(.*)\&index/g,“?v=“+value+”&index”)
document.getElementById(“id”).innerHTML=link
});
输入链接:
www.youtube.com/watch?v=s8IJkexsjlI&index=37&list=PLB03EA9545DD188C3


输出链接:
请检查以下代码

var youstr="www.youtube.com/watch?v=s8IJkexsjlI&index=37&list=PLB03EA9545DD188C3";
var start=youstr.indexOf("=");
var end=start+11;
var replaceStr=youstr.slice(start,start+11);
youstr=youstr.replace(replaceStr,"ReplaceString");

显示您尝试使用的字符串方法是什么?像
replace
substring
?似乎是一个基本的正则表达式。您的问题不完整<代码>因此输出将是
???此外,您也无法指定这11个字符是什么,或者在这11个字符之后是什么。你也没有分担任何努力。您可以查看
string.replace
string.split
string.substring
,但请尝试一下。您正在被串行降级,因为您没有尝试自己回答问题,如果您尝试过,请向我们展示非工作代码,因此,我们有一个起点来说明如何解决这个问题。在这种情况下,正则表达式总是更好
/v=[^&]*(?=&|$)/
@Rajesh您的正则表达式捕获整个字符串@Rajesh-取决于您如何定义“更好”。就我个人而言,我通常倾向于避免使用正则表达式,即使它只是为了可读性的缘故而对性能造成了轻微的影响。维护字符串替换更容易。@user2366842在这种情况下,您将遍历字符串并找到
v=
的索引。然后,将取temp中的前半部分,并再次循环剩余字符串,作为
&
的索引。最后,您将在剩余字符串上执行另一个子字符串以替换值。另外,如果此行为要重复多次,您将使其成为函数并手动调用。后悔解决了这一切。是的,不是每个人都擅长正则表达式,但有时最好在这些地方添加注释以保持可读性。:-)