Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
581 views
in Technique[技术] by (71.8m points)

regex - find and replace tokens in javascript

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
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];
});

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...