WEB前端研发工程师编程能力成长之路(2)

  上篇:WEB前端研发工程师编程能力成长之路(1)

  四.【入微】

  最强解决方案。你能够走在需求的前面,将当前需求里有的、没有直接提出来的、现在暂时没有但将来可能有的等等,及前端编程潜规则等各个方方面面都综合考虑,给出最优方案。以一招胜万招。

var str = "http://www.xxx.com/?pn=0";   // 删除指定字符 pn=0
//
我将这个字符串里所可能想到的各种情况都列举出来
var a = [
"http://www.xxx.com/VMpn=?pn=0"// pn= 可能出现在 ? 前
, "http://www.xxx.com/VMpn=?pn="// URL里允许pn 值为空
, "http://www.xxx.com/VMpn=?pn=0&a=1"// URL 里可有多个字段
, "http://www.xxx.com/VMpn=?a=1&pn=0"// 可能排在最后
, "http://www.xxx.com/VMpn=?a=1&pn=0&pn=1"// 可能有多个 pn 字段
, "http://www.xxx.com/VMpn=?a=1&pn=0&b=2"// 可能在中间
, "http://www.xxx.com/VMpn=?a=1&pn=0&pn=1&b=1" // 可能在中间成组
, "http://www.xxx.com/VMpn=?a=1&pn=0&b=1&pn=1" // 可能零星分布
];
/* 需求的不言之秘:
? 若出现在字符串最尾则要去之
? & 两个符号不可重叠
*/
var reg = /((/?)(pn=[^&]*&)+(?!pn=))|(((/?|&)pn=[^&]*)+$)|(&pn=[^&]*)/g;

for (var i = 0; i < a.length; i++) {
alert(a[i]
+ "/n" + a[i].replace(reg, "$2"));
}

it知识库WEB前端研发工程师编程能力成长之路(2),转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。