字符串我有以下字符串匹配使用正則表達式
name=cvbb&source=Mamma+Mia&startdate=2014-03-24
如何與名正則表達式,即字符串「cvbb」相關聯的值相匹配
/[^名稱] = [^ &]/matches = cvbb但我只想cvbb
字符串我有以下字符串匹配使用正則表達式
name=cvbb&source=Mamma+Mia&startdate=2014-03-24
如何與名正則表達式,即字符串「cvbb」相關聯的值相匹配
/[^名稱] = [^ &]/matches = cvbb但我只想cvbb
它看起來像你想獲得URL參數值?在這種情況下,你可以使用此功能:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var value = getParameterByName('startdate');
這將使2014-03-24
在一個名爲value
你可以至少站點源http://stackoverflow.com/a/901144/1524085 –
我一直在尋找它(我從我做了一個項目的代碼,但我沒有找到原始來源,謝謝! – SauriolJf
變種我假設你要選擇出了名的,對不對?爲此,您可以使用以下表達式: -
/name=([\w]+)&source=.*/
說明:第一個單詞名稱寫在那裏。之後([\ w] +)將匹配字母數字字符列表。然後&會來,並停止我們的選擇。如果你想檢查字符串名稱開始,然後使用
/^name=([\w]+)&source=.*/
注意:使用[^名稱]表示的字符不應該是N,A,M或E這是不是您要查看的內容。我希望這有幫助。
嘗試
var queryString = 'name=cvbb&source=Mamma+Mia&startdate=2014-03-24';
var theStringImAfter = queryString.match(/[?&]name=([^&]*)/i)[1]
注意的queryString可以是一個完整的網址,例如:從window.location.href中,你不需要首先解析查詢字符串。
如果您傳遞的是編碼字符串(如果包含字符在空格,&符號或等號等中不受支持的字符,則是標準字符),則需要在使用該字符串之前對其進行解碼。這可以通過decodeURIComponent(theStringImAfter)
完成。
這裏是同樣的方法在可重複使用的功能包裹起來
function getArg(url, arg){
var v=url.match(new RegExp('[?&]' + arg + '=([^&]*)', 'i'));
return (v)?decodeURIComponent(v[1]):'';
}
用法:
var theStringImAfter = getArg('name=cvbb&source=Mamma+Mia&startdate=2014-03-24', 'name');
[好運;很容易解析查詢字符串錯誤](http://zzzzbov.com/blag/querystring-hell)。 – zzzzBov