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

时间:2013-09-06 11:34:35

标签: 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开始,我知道,但在逗号之前,值可以是任何值。

如何准确地从urn获取子字符串直到JavaScript中的逗号?

编辑:
我尝试从,分割字符串,但可能有很多逗号和代码变得混乱。我无法从urn到第一个逗号得到正则表达式。在第一个逗号之后,我想停止。

3 个答案:

答案 0 :(得分:1)

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

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

示例:http://regexr.com?3681h

或替代方案:

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

示例:http://regexr.com?3681k

在这种情况下两者都是相同的,所以选择你最了解的那个。

答案 1 :(得分:0)

使用正则表达式

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

答案 2 :(得分:0)

如果您知道,urn:并且逗号总是在字符串中,您可以这样做

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


或者您可以使用正则表达式

str =“SHA256-RSA-V1,140f3059eac,384,urn:alx:uid:09bd9e42-0348-4c35-910d-2d7fdaa2,1,random”; str.match(/瓮:?+,/);