[英]I need to match a certain part of url path using Regex and Javascript
我有以下鏈接:
sitename.com/Default.aspx?PageID=13078494
我想獲取以下內容:“ PageID = 13078494”。 這是我到目前為止的內容:
var url = "sitename.com/Default.aspx?PageID=13078494";
urlmatch = url.match([PageID=13078494]);
urlmatch[0];
這是我想要做的正確表達嗎?
您的正則表達式及其語法錯誤。
更好的方法是根本不使用正則表達式。 使用.split()
代替:
var urlmatch = url.split('?')[1];
這是小提琴: http : //jsfiddle.net/qpXNU/
var myregexp = /[?&]PageID=(\d+)/i;
var match = myregexp.exec(url);
if (match != null) {
//This is if your match it successful
result = match[1];
} else {
//This is if url doesn't match
result = "";
}
無論PageID在哪里,都可以使用該代碼。 會匹配
重要的是,它不會匹配
或不進行檢查,只需url.match(/[?&]PageID=(\\d+)/i)[1]
,但我建議您這樣做,除非您確定它總是匹配的。
嘗試以下正則表達式,它將提取PageID並將其放置在第一個匹配組中:
var url = "sitename.com/Default.aspx?PageID=13078494";
urlmatch = url.match(/PageID=(\d+)/);
alert(urlmatch[1]); // 13078494
如果您要匹配特定的值,那很好,否則請在下面使用它來匹配pageID中的任意數字:
/PageID=\d+/
如:
var url = "sitename.com/Default.aspx?PageID=13078494";
var urlmatch = url.match(/PageID=\d+/);
alert(urlmatch[0]);
或要匹配pageID中的8個精確數字,請使用:
/PageID=\d{8}/
如:
var url = "sitename.com/Default.aspx?PageID=13078494";
var urlmatch = url.match(/PageID=\d{8}/);
alert(urlmatch[0]);
在處理URL方面,瀏覽器非常出色。
您應該將字符串轉換為實際的URL,如下所示:
var toURL = function (href) {
var a = document.createElement('a');
a.href = href;
return a;
};
現在使用瀏覽器的內置解析功能 :
var url = toURL('sitename.com/Default.aspx?PageID=13078494');
alert(url.search);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.