我有以下来自ajax响应的字符串。
"<option value="1000133925">Abhishek</option>
<option value="1000182033">FRESH</option>
<option value="1000390154">Testing</option>"
我有另一个相同格式的字符串,我需要比较两个字符串并删除第二个字符串中的重复值,然后将剩余的选项附加到选择。
我无法从上面的字符串创建一个json对象,它将映射为{'1000133925':'Abhishek','1000182033':'FRESH'}。请帮帮我。
答案 0 :(得分:2)
尝试:
var input = '<option value="1000133925">Abhishek</option><option value="1000182033">FRESH</option><option value="1000390154">Testing</option>';
var output = {};
$(input).each(function(){
output[$(this).val()] = $(this).text();
});
输出:
Object {1000133925: "Abhishek", 1000182033: "FRESH", 1000390154: "Testing"}
答案 1 :(得分:1)
正则表达式解决方案:
var obj = {}, m, r = /<option value="([^"]*)">([^<]*)<\/option>/g;
while (m = r.exec(s)) obj[m[1]] = m[2];
建立
{1000133925: "Abhishek", 1000182033: "FRESH", 1000390154: "Testing"}
答案 2 :(得分:1)
我不明白为什么你坚持使用正则表达式,当你可以使用jQuery
时这样做:
var options = '<option value="1000133925">Abhishek</option><option value="1000182033">FRESH</option><option value="1000390154">Testing</option>';
$(options).filter(function(index, el){
//put here your condition for instance I have filtered odd values
return (!isNaN(parseInt(this.value)) && parseInt(this.value)%2);
}).appendTo("#your-select-element");