我需要解析同时包含文本和数字的查询字符串。例如以下查询字符串:
?userID=12&team=Sales&quarter=Q1&count=2310
应翻译成以下 JavaScript 对象:
{
userID:12, // not "12"
team:"Sales",
quarter:"Q1",
count:2310 // not "2310"
}
目前我分两步进行:
- 解析查询字符串
- 遍历所有参数并确定哪些是数字(使用正则表达式或 isNumber 函数
!isNaN(parseFloat(n)) && isFinite(n)
这似乎相当低效,尤其是因为我的大多数参数都不是数字。有没有更好的办法?