|
四.【入微】
最強解決方案。你能夠走在需求的前面,將當前需求里有的、沒有直接提出來的、現在暫時沒有但將來可能有的等等,及前端編程潛規則等各個方方面面都綜合考慮,給出最優方案。以一招勝萬招。
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),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。