在javascript中用正则表达式替换字符串

时间:2012-03-09 09:16:21

标签: javascript regex

我在javascript字符串变量中有以下文字:

  

这里有一些文字Page.Title =“infowithåäö”;这里有更多文字

我需要定位以下内容并将其置于javascript变量(包括引号)中:

  

Page.Title =“infowithåäö”;

所以我可以把它操纵到这个:

  

Page.Title =“123的其他一些信息”;

并替换并放回字符串中,如下所示:

  

这里是som text Page.Title =“其他一些信息,如123”;这里还有更多   文本

“Page.Title =”始终与最后一个分号相同,但是引号之间的字符串,如: “与åäö的信息”; 可以变化

那么我怎样才能最好地定位并用另一个字符串更改该字符串呢?

这就是我的尝试:

strFind = /Page.Title = [a-z]+/;
strHTML_value = here is some text Page.Title = "info with åäö"; here is more text
strToBeReplace = strHTML_value.match(strFind)[1]
alert(' strToBeReplace ' + strToBeReplace); // = Page.Title = "info with åäö";
strNewValue = Page.Title = "some other info like 123";
strHTML_value = strHTML_value.replace(strToBeReplace, strNewValue);

2 个答案:

答案 0 :(得分:1)

您可能希望在JavaScript上下文中查看一些正则表达式: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

首先,您的代码存在一些语法错误,但除此之外,您的正则表达式将无法执行您想要的操作。

var titleRegex = /Page\.Title\s=\s(".+")/;
var stringValue = "here is some text Page.Title = \"info with åäö\"; here is more text";
var replaceValue = "A New Title";
var newTitle = stringValue.replace(/(Page\.Title\s=\s")([^"]+)(")/, '$1' + replaceValue + '$3');

答案 1 :(得分:0)

尝试以下正则表达式/代码:

var str = 'here is some text Page.Title = "info with åäö"; here is more text';
var replaceWith = 'some other info like 123';
str = str.replace(/(.*Page\.Title = ")([^"]+)(".*)/gi, '$1' + replaceWith + '$3');

请注意"[^"]+"序列找到一个开头的引号,后跟一个或多个非引号字符,后跟一个结束引号。