我在模板中有一个类似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;
答案 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中创建一个最小的模板语言解析器。它编写得很好,可能是你自己的模板语言的一个很好的起点。