我有以下字符串
name=cvbb&source=Mamma+Mia&startdate=2014-03-24
如何将与name关联的值与正则表达式匹配,即字符串" cvbb"
/ [^ name] = [^&] / matches = cvbb但我只想要cvbb
答案 0 :(得分:0)
看起来你想获得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
答案 1 :(得分:0)
我假设您要选择名称,对吗?为此,您可以使用表达式: -
/name=([\w]+)&source=.*/
说明:第一个单词名称就在那里。之后([\ w] +)将匹配一个字母数字字符列表。然后&会来阻止我们的选择。如果要检查字符串是否以name开头,请使用
/^name=([\w]+)&source=.*/
注意:使用[^ name]表示字符不应该是n,a,m或e,而不是您要检查的字符。我希望这有帮助。
答案 2 :(得分:0)
试
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');