如果我想获取URI查询字符串的相关部分,我可以选择使用这两种方法中的任何一种,这两种方法都有效。这可能不值得纠结,但如果有选择,你会选择这些方法中的哪一种,为什么?
a)
var PN = this.href.replace(/.*&partNum=(.*)&partName=.*/, '$1');
var PName = this.href.replace(/.*&partName=(.*)&class=.*/, '$1'); b)
var hrefSplit = this.href.split('&');
var PN = hrefSplit[1].replace('partNum=', '');
var PName = hrefSplit[2].replace('partName=', '');发布于 2012-02-13 22:30:03
我认为我不会使用它们中的任何一个,它们都太依赖于查询字符串的格式。(考虑一下如果查询字符串在partNum之前具有partName会发生什么情况。)这类事情通常是等待发生的维护麻烦。
相反,我会将查询字符串转换为映射(为此使用一个集中函数),然后检索映射的相关部分。
发布于 2012-02-13 22:40:03
根据参数顺序,两者都是危险的,您应该这样解析:
var num = url.match(/\WpartNum=(\w*)/)[1];
var name = url.match(/\WpartName=(\w*)/)[1];或
var pNum = /\WpartNum=(\w*)/.exec(url)[1];
var pName = /\WpartName=(\w*)/.exec(url)[1];https://stackoverflow.com/questions/9262155
复制相似问题