我有一个像这样的字符串:
Id=bzat4e&Name=Gallery: Blitzer: Algebra & Trigonometry, 4e&Year=2016&Code=bzat4e
我想在 &
的基础上拆分它,同时允许 &
内部值。
基本上它是一串 url 参数,我根据 JavaScript 中的键获取值。
I/P
var paramList = Id=bzat4e&Name=Gallery: Blitzer: Algebra & Trigonometry, 4e&Year=2016&Code=bzat4e
O/P
[Id="bzat4e", Name="Gallery: Blitzer: Algebra & Trigonometry, 4e", Year="2016", Code="bzat4e"]
最佳答案
您可以使用split()
将其作为数组获取
var str = 'Id=bzat4e&Name=Gallery: Blitzer: Algebra & Trigonometry, 4e&Year=2016&Code=bzat4e';
var res = str.split(/&(?=[^=&]+=)/);
console.log(res);
要将数组转换为对象,请使用 reduce()
var str = 'Id=bzat4e&Name=Gallery: Blitzer: Algebra & Trigonometry, 4e&Year=2016&Code=bzat4e';
var res = str.split(/&(?=[^=&]+=)/).reduce(function(a, b) {
var spl = b.split('=');
a[spl[0].trim()] = spl[1];
return a;
}, {});
console.log(res);
对于旧浏览器,请检查 polyfill option for reduce() method .
<小时/>
关于javascript - 基于 "&"拆分字符串(url params 字符串),同时允许 & 在参数值内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37322038/