最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

regex - find and replace tokens in javascript - Stack Overflow

programmeradmin9浏览0评论

I have to do something like this

string  = " this is a good example to show"

search  = array {this,good,show}

find and replace them with a token like

string  = " {1} is a {2} example to {3}" (order is intact)

the string will undergo some processing and then

string  = " {1} is a {2} numbers to {3}" (order is intact)

tokens are again replaced back to the string likem so that the string becomes

string  = " this is a good number to show"

how to make sure that the pattern is matched and the same tokens are replaced

for example /[gG]ood/ is a pattern to search and replaced later with appropriate "case".Or in other words if ^\s*[0-9]+. is the pattern the matched string needs to be stored and replace to form the original text as it was

How should it be implemented so that the process is done at high performance ?

Thanks in advance.

I have to do something like this

string  = " this is a good example to show"

search  = array {this,good,show}

find and replace them with a token like

string  = " {1} is a {2} example to {3}" (order is intact)

the string will undergo some processing and then

string  = " {1} is a {2} numbers to {3}" (order is intact)

tokens are again replaced back to the string likem so that the string becomes

string  = " this is a good number to show"

how to make sure that the pattern is matched and the same tokens are replaced

for example /[gG]ood/ is a pattern to search and replaced later with appropriate "case".Or in other words if ^\s*[0-9]+. is the pattern the matched string needs to be stored and replace to form the original text as it was

How should it be implemented so that the process is done at high performance ?

Thanks in advance.

Share Improve this question edited May 14, 2010 at 4:42 Sourabh asked May 6, 2010 at 9:44 SourabhSourabh 4,76511 gold badges40 silver badges45 bronze badges 1
  • It would help if you cleaned up the syntax and read the help on how to format source code here. – RoToRa Commented May 6, 2010 at 9:59
Add a comment  | 

2 Answers 2

Reset to default 7

You don't mention anything about multiple occurrences of the same token in the string, I guess you'll be replacing all occurrences.

It would go something like this:

var string = "This is a good example to show, this example to show is good";
var tokens = ['this','good','example'];

for (var i = 0; i < tokens.length; i++) {
    string.replace(new RegExp(tokens[i], "g"),"{"+i+"}");
}
// string processing here
for (var i = 0; i < tokens.length; i++) {
    string.replace(new RegExp("{"+i+"}","g"),tokens[i]);
}
var string = "this is a good example to show"
var search = ["this","good","show"] // this is how you define a literal array

for (var i = 0, len = search.length; i < len; i++) {
   string.replace(RegExp(search[i], "g"), "{" + (i+1) + "}")
}

//... do stuff

string.replace(/\{(\d+)\}/, function(match, number) {
  if (+number > 0)
    return search[+number - 1];
});
发布评论

评论列表(0)

  1. 暂无评论