2010-02-11 95 views
0

JavaScript text manipulation字符串操作

我需要一点操纵在string.I需要检索匹配的文本,然后替换这样

匹配text.Something替换(“@ anytext @”,@ anytext @)

我的字符串可以有@ anytext @ any在字符串中多次。

回答

1

您可以进行第二个参数replace功能:

str = "testing one two three"; 
str = str.replace(/one/g, function(match) { 

    return match.toUpperCase(); 
}); 

,它取代了 “一” 与 “ONE”。函数的第一个参数是正则表达式的匹配结果。函数的返回值是替换匹配的内容。

如果你在你的正则表达式的任何捕获组,他们将更多的函数的自变量:

str = "testing one two three"; 
str = str.replace(/(on)(e)/g, function(match, group0, group1) { 

    return match.toUpperCase(); 
}); 

那请问第一个做什么,但如果你愿意,你可以看到什么在捕获小组。在那个例子中,group0将是“开”,而group1将是“e”。

5

这不是jQuery的,但常规的JavaScript

var stringy = 'bob john'; 

stringy = stringy.replace(/bob/g, 'mary'); 
+0

处理替换它,而不是检索它。 – 2010-02-11 11:51:51

+0

@ T.J。该方法返回一个字符串与替换的子字符串。所以,stringy将包含一个字符串,其中子字符串bob被替换为子字符串mary。 – ChadNC 2010-02-11 12:52:49

+0

@ChadNC:是的,没错。我对这个问题的解释是她(?)想要检索匹配的子字符串,以及替换字符串。但这可能只是我的解释。 – 2010-02-11 13:27:10