使用javascript表达式替换关键字

时间:2015-06-24 15:02:30

标签: javascript regex string replace

我在模板中有一个类似hey! <input/>, Welcome的字符串。

我需要用JS表达式<input/>替换每个this.input

例如:

//Input
"hey! <input/>, Welcome";

Output should be:    
"hey! " + this.input + ", Welcome";

我可以使用" + this.input + "对字符串进行替换,但问题是如果<input/>在开头还是结尾?

处理此问题的最佳方法是什么?

编辑:

我不希望输出为字符串。我希望输出是一个有效的JS表达式。

Valid inputs:
1) "hey! <input/>, Welcome";
2) "<input/>, Welcome";
3) "Welcome <input/>"

Outputs:
1) "hey! " + this.input + ", Welcome";
2) this.input + ", Welcome";
3) "Welcome " + this.input;

2 个答案:

答案 0 :(得分:1)

正如我在上面的评论中所写,您可以使用:

var input = 'foo';
var str = "hey! <input/>, Welcome";
str = str.replace(/(.*?)<input\/>(.*)/, '$1' + this.input + '$2');

console.log(str);
//=> "hey! foo, Welcome"

答案 1 :(得分:0)

"hey! <input/>, Welcome".replace(/<input\/>/, this.input);

修改

John Reisig提出blog entry关于在javascript中创建一个最小的模板语言解析器。它编写得很好,可能是你自己的模板语言的一个很好的起点。