簡體   English   中英

使用正則表達式匹配字符串

[英]Match a string using a regular expression

我有以下字符串

name=cvbb&source=Mamma+Mia&startdate=2014-03-24

如何將與名稱關聯的值與正則表達式匹配,即字符串“ cvbb”

/ [^ name] = [^&] /匹配= 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

我假設您想選擇名稱,對不對? 為此,您可以使用以下表達式:

/name=([\w]+)&source=.*/

說明:第一個單詞的名稱就寫在這里。 之后([\\ w] +)將匹配一個字母數字字符列表。 然后&將停止我們的選擇。 如果要檢查字符串以名稱開頭,請使用

/^name=([\w]+)&source=.*/

注意:使用[^ name]表示字符不應為n,a,m或e,這不是您要檢查的字符。 我希望這有幫助。

嘗試

var queryString = 'name=cvbb&source=Mamma+Mia&startdate=2014-03-24';
var theStringImAfter = queryString.match(/[?&]name=([^&]*)/i)[1]

請注意,queryString可以是完整的URL,例如來自window.location.href,您不需要首先解析查詢字符串。

如果要傳遞編碼的字符串(這是正常的情況,如果您包含URL中不支持的字符,例如空格,“&”或等號等),則需要在使用該字符串之前對其進行解碼。 這可以通過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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM