如何在Javascript中找到并替换给定前缀和字符串后缀的字符串?

时间:2015-10-28 08:27:03

标签: javascript regex

鉴于:

  1. 一个字符串,例如

    Username="don" Password="somethingcalledpassword" Url="someurl"
    
  2. 搜索字符串的前缀Password =“

  3. search-String suffix =“
  4. 的后缀

    目的: 搜索并替换以前缀开头并以后缀(第一次出现)结束的主字符串的所有子字符串。

    E.g。

    var str = "Username=\"don\" Password=\"somethingcalledpassword\"
    Url=\"someurl\"";
    
     //replace somethingcalledpassword with new password.
    

2 个答案:

答案 0 :(得分:1)

根据我的理解,你想要只替换一个字符串。

var replaceBetween = function(str, start, end, what) {
    return str.substring(0, start) + what + str.substring(end);
};
var str = "Password=\"somethingcalledpassword\"";
alert(str);
var start = str.indexOf("\"") + 1;
var end = str.lastIndexOf("\"");
var str = replaceBetween(str, start, end, "newPassword");
alert(str);

这是小提琴http://jsfiddle.net/murli2308/ao28y8x2/

答案 1 :(得分:0)

您可以替换与以下正则表达式匹配的文本:

/Password="[^"]*"/

所以完整的代码是:

var str = "Username=\"don\" Password=\"somethingcalledpassword\" Url=\"someurl\"";
var newpassword = "anewpassword";
var st2 = str.replace(/Password="[^"]*"/, "Password=\""+newpassword+"\"");