首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果要选择使用replace with regex/backreference还是split/replace,您会选择哪一个?

如果要选择使用replace with regex/backreference还是split/replace,您会选择哪一个?
EN

Stack Overflow用户
提问于 2012-02-13 22:27:38
回答 2查看 73关注 0票数 0

如果我想获取URI查询字符串的相关部分,我可以选择使用这两种方法中的任何一种,这两种方法都有效。这可能不值得纠结,但如果有选择,你会选择这些方法中的哪一种,为什么?

a)

代码语言:javascript
复制
var PN = this.href.replace(/.*&partNum=(.*)&partName=.*/, '$1');
var PName = this.href.replace(/.*&partName=(.*)&class=.*/, '$1');  

b)

代码语言:javascript
复制
var hrefSplit = this.href.split('&');
var PN = hrefSplit[1].replace('partNum=', '');      
var PName = hrefSplit[2].replace('partName=', '');
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-13 22:30:03

我认为我不会使用它们中的任何一个,它们都太依赖于查询字符串的格式。(考虑一下如果查询字符串在partNum之前具有partName会发生什么情况。)这类事情通常是等待发生的维护麻烦。

相反,我会将查询字符串转换为映射(为此使用一个集中函数),然后检索映射的相关部分。

票数 2
EN

Stack Overflow用户

发布于 2012-02-13 22:40:03

根据参数顺序,两者都是危险的,您应该这样解析:

代码语言:javascript
复制
var num = url.match(/\WpartNum=(\w*)/)[1];
var name = url.match(/\WpartName=(\w*)/)[1];

代码语言:javascript
复制
var pNum = /\WpartNum=(\w*)/.exec(url)[1];
var pName = /\WpartName=(\w*)/.exec(url)[1];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9262155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档