gpt4 book ai didi

javascript - JS正则表达式从url返回字符串

转载 作者:行者123 更新时间:2023-11-29 18:02:20 24 4
gpt4 key购买 nike

我有以下 URL 结构:

https://api.bestschool.com/student/1102003120009/tests/json

我想从 URL 中删除学生 ID。到目前为止,我想出了这个:

/(student\/.*[^\/]*)/

返回

student/1102003120009/tests/json

我只想要身份证。

最佳答案

你的正则表达式 (student\/.*[^\/]*) 匹配并捕获到组 1 中的文字序列 student/,然后匹配除换行符,出现 0 次或多次 (.*) - 可以一次匹配整行! - 然后是 / 以外的 0 个或多个字符。由于 .*,它不起作用。此外,应将捕获组移动到 [^\/]* 模式。

您可以使用以下正则表达式并获取第 1 组值:

student\/([^\/]*)

参见 regex demo

正则表达式从字面上匹配 student/,然后将 captures 匹配到组 1 中除 / 之外的零个或多个符号。

或者,如果您想避免使用捕获,并假设 ID 始终为数字且后跟 /tests/,则可以使用以下正则表达式:

\d+(?=\/tests\/)

\d+ 匹配 1 个或多个数字,(?=\/tests\/) 检查紧跟在数字之后是否有 /tests/ 字符序列。

var re = /student\/([^\/]*)/; 
var str = 'https://api.bestschool.com/student/1102003120009/tests/json';
var m = str.match(re);
if (m !== null) {
document.getElementById("r").innerHTML = "First method&nbsp;&nbsp;&nbsp;&nbsp;: " + m[1] + "<br/>";
}
var m2 = str.match(/\d+(?=\/tests\/)/);
if (m2 !== null) {
document.getElementById("r").innerHTML += "Second method: " + m2;
}
<div id="r"/>

关于javascript - JS正则表达式从url返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34021473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com