繁体   English   中英

正则表达式匹配特定 URL JavaScript

[英]Regex to Match Specific URL JavaScript

我正在尝试匹配一个特定的 URL( http://www.example.me/area/?si= ),它允许我从 si 获取价值。 si 值将是动态的

http://www.example.me/area/?si=4077765

假设查询字符串中si键的值将始终是数字(即:0 - 9),试试这个...

var url = 'http://www.example.me/area/?test=4894&si=4077765&f=fjjjf',
    si = url.match(/.*[\?&]si=(\d+)/i)[1];

或者更通用一点...

function getQueryStringValue(url, key) {
    var regex = new RegExp('.*[\\?&]' + key + '=(\\d+)', 'i');
    return url.match(regex)[1];
}

如果不是数字试试这个......

/.*[\?&]si=(\w+)/i

解释:

  • .* 匹配 0 次和无限次之间的任何字符(换行符除外)
  • [\\?&] 匹配单个字符,或者 ? 或者 &
  • si= 字面上匹配字符 si= (不区分大小写)
  • (\\d+) 第一个捕获组。 匹配 1 次和无限次之间的任何数字 [0-9]
  • i 修饰符 - 不区分大小写

正则表达式101

获取任何查询字符串值

function qstr(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } return false; }

检查查询字符串是否存在

function isset_qstr(field) { var url = vp_furl(); if (url.indexOf('?' + field + '=') != -1) { return true; } else if (url.indexOf('&' + field + '=') != -1) { return true; } return false; }

我认为你需要第一个功能。 如果您认为它有帮助,请投票。

谢谢你。 祝你好运

我认为这样的事情可以解决问题:

var regex = /http\:\/\/www\.example\.me\/area\/\?si=(\w*)/;

var url = 'http://www.example.me/area/?si=4077765';
var si = url.match(regex)[1]; // si = '4077765'

正则表达式的第一部分只是您的 URL "\\" 用于转义特殊字符。

(\\d+) 是一个捕获组,匹配 az、AZ、0-9 中的所有字符,包括 _(下划线)字符从 0 到 n 迭代。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM