正则表达式从javascript NDEF标记中获取有效负载

时间:2016-09-22 11:13:05

标签: regex

我有一个从NFC NDEF有效负载生成的字符串,如下所示:

字符串:

enMAC_98:D3:36:00:A2:90

来自:

var MACdevicex = String(finalNdef.match(/MAC_(.*)/));

我想在字符串的MAC_部分之后获取所有文本。但我得到的是下面的字符串。我需要通过上面的match()生成的文本中的逗号后面的文本。我不想再做另一场比赛来划分逗号部分,希望能在一场比赛中完成所有这些()

出错文字

MAC_98:D3:36:00:A2:90,98:D3:36:00:A2:90

1 个答案:

答案 0 :(得分:0)

您需要从字符串中获取捕获的值,而不是整个匹配。

使用String#match和没有全局修饰符g的正则表达式,您会得到一个数组,其中包含[0]整个匹配项和[1]捕获的值1。 .. [n]捕获值n

  

返回值

     

Array包含整个匹配结果和任何括号捕获的匹配结果; null如果没有匹配项。

使用它的最佳方法是先检查是否匹配,然后再访问第二个元素。

var MACdevicex = (m = "enMAC_98:D3:36:00:A2:90".match(/MAC_(.*)/)) ? m[1] : "";
console.log(MACdevicex);

在这里,我们将匹配结果分配给m,如果匹配,则返回m[1](组1捕获值),否则,""空字符串为返回。