我有一个从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
答案 0 :(得分:0)
您需要从字符串中获取捕获的值,而不是整个匹配。
使用String#match
和没有全局修饰符g
的正则表达式,您会得到一个数组,其中包含[0]
整个匹配项和[1]
捕获的值1
。 .. [n]
捕获值n
。
返回值
使用它的最佳方法是先检查是否匹配,然后再访问第二个元素。
var MACdevicex = (m = "enMAC_98:D3:36:00:A2:90".match(/MAC_(.*)/)) ? m[1] : "";
console.log(MACdevicex);
在这里,我们将匹配结果分配给m
,如果匹配,则返回m[1]
(组1捕获值),否则,""
空字符串为返回。