我有未指定数量的html输入:
<input id="ageInput" />
<input id="nameInput" />
...
并具有以下基于输入构建的字符串:
s = "{ 'age': '{ageInput}', 'name': '{nameInput}'}"
如何使用正则表达式替换上面的字符串以反映当前的输入值,如下所示:
s = "{ 'age': " + $('#ageInput').val() + ", 'name': " + $('#nameInput').val() + " }"
答案 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)