JavaScript获取从特定字符开始和结束的子字符串

JavaScript获取从特定字符开始和结束的子字符串,javascript,regex,Javascript,Regex,我有一个JavaScript文件签名,它是一个字符串,从SHA开始,以某个值结束: SHA256-RSA-V1,140f3059eac,384,urn:alx:uid:09bd9e42-0348-4c35-910d-2d7fdaa2,1, ... 我只想要这个部分:urn:alx:uid:09bd9e42-0348-4c35-910d-2d7fdaa2 它总是从urn开始,我知道,但在逗号之前,值可以是任何值 在JavaScript中,如何精确地从urn到逗号获取子字符串 编辑: 我尝试从,中

我有一个JavaScript文件签名,它是一个字符串,从
SHA
开始,以某个值结束:

SHA256-RSA-V1,140f3059eac,384,urn:alx:uid:09bd9e42-0348-4c35-910d-2d7fdaa2,1, ...
我只想要这个部分:
urn:alx:uid:09bd9e42-0348-4c35-910d-2d7fdaa2

它总是从
urn
开始,我知道,但在逗号之前,值可以是任何值

在JavaScript中,如何精确地从
urn
到逗号获取子字符串

编辑:

我尝试从
中拆分字符串,但可能会有很多逗号,代码会变得凌乱。我无法从
urn
到第一个逗号获取正则表达式。在第一个逗号之后,我想停止。

我将使用以下正则表达式:

(urn:alx:uid:[a-f0-9-]+)
例如:

或替代方案:

(urn:alx:uid:[^,]+)
例如:


在这种情况下,两者都是相等的,因此请选择您更了解的一个。

使用正则表达式

string = "SHA256-RSA-V1,140f3059eac,384,urn:alx:uid:09bd9e42-0348-4c35-910d-2d7fdaa2"
var matches = string.match(/urn.*\,/);
alert(matches[1]);

如果你知道,urn:字符串中总是有逗号,你可以这样做

str=“SHA256-RSA-V1140F3059EAC,384,urn:alx:uid:09bd9e42-0348-4c35-910d-2d7fdaa2,1,随机”; result=“urn:+str.split(,urn:).slice(1.join().split(,”)[0]


或者可以使用正则表达式

string = "SHA256-RSA-V1,140f3059eac,384,urn:alx:uid:09bd9e42-0348-4c35-910d-2d7fdaa2"
var matches = string.match(/urn.*\,/);
alert(matches[1]);
str=“SHA256-RSA-V1140F3059EAC,384,urn:alx:uid:09bd9e42-0348-4c35-910d-2d7fdaa2,1,随机”;
str.match(/urn:.+?,/)

请阅读“使用类似“SHA.*(urn:[^,]*)”的正则表达式”。此外,考虑标记你的帖子,以便它被正确分类。@ X3RO,我尝试过正则表达式。我需要更好的正则表达式。为什么要投否决票?不。在如下
SHA256-RSA-V1140F3059EAC,384,urn:alx:uid:09bd9e42-0348-4c35-910d-2d7fdaa2,122342534,5
这样的字符串上运行代码,可以将匹配项作为一个包含所有逗号的数组。我想首先停止逗号
(urn:[^,]+)
工作。谢谢