javascript正则表达式替换字符串

时间:2014-02-27 21:23:48

标签: regex replace

我有未指定数量的html输入:

<input id="ageInput" />
<input id="nameInput" />

...

并具有以下基于输入构建的字符串:

s = "{ 'age': '{ageInput}', 'name': '{nameInput}'}"

如何使用正则表达式替换上面的字符串以反映当前的输入值,如下所示:

s = "{ 'age': " + $('#ageInput').val() + ", 'name': " + $('#nameInput').val() + " }"

1 个答案:

答案 0 :(得分:0)

回答原始问题,使用replace字符串方法,接受函数作为参数:

s  = s.replace(/\{([^{}]+)\}/g, function (match, g1) { 
   return $("#" + g1).val()
})

但我宁愿使用JSON.stringify

var s =  "{ 'age': '{ageInput}', 'name': '{nameInput}'}"
  , controlMap = JSON.parse(s)
  , data = {}

for(var i in controlMap) {
    data[i] = $(controlMap[i]).val()
}

var str = JSON.stringify(data)