正则表达式匹配特定的URL JavaScript

Regex to Match Specific URL JavaScript

本文关键字:URL JavaScript 正则表达式      更新时间:2023-09-26

我试图匹配一个特定的URL(http://www.example.me/area/?si=),允许我从si获得值。Si值将是动态的

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

获取任意查询字符串值

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; }

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

谢谢。祝你好运

假设查询字符串中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修饰符-不区分大小写

regex101

我认为这样做可以达到目的:

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+)是一个捕获组,它匹配a-z, a-z, 0-9中的所有字符,包括0到n次迭代中的_(下划线)字符。