[英]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.