将JS字符串与正则表达式匹配

时间:2016-12-01 05:47:59

标签: javascript regex

我有一个以字符串格式存储的长xml原始消息。样本如下。

 <tag1>val</tag><tag2>val</tag2><tagSomeNameXYZ/>

我正在寻找这个字符串并查明它是否包含一个空的html标记,例如<tagSomeNameXYZ/>。这就是, SomeName 的值可以根据上下文而改变。我尝试使用Str.match(/tagSomeNameXYZ/g)Str.match(/<tag.*.XYZ\/>/g)来确定它是否包含该字符串,但是能够让它返回任何内容。我在撰写与<tag*XYZ/>匹配的注册表时遇到问题,其中*将是SomeName(我对此不感兴趣)

Tl; dr:如何从字符串中过滤掉<tagSomeNameXYZ/>。格式为:<constant variableName constant/>

它应匹配的示例模式:

<tagGetIndexXYZ/>
<tagGetAllIndexXYZ/>
<tagGetFooterXYZ/>

1 个答案:

答案 0 :(得分:0)

Str.match(/<tag.*.XYZ\/>/g)所遇到的问题是。*会根据您的意愿拍摄所看到的所有内容并且不会停留在XYZ上。所以你需要找到一种方法来阻止(例如[^/]*意味着继续,直到找到/),然后从那里开始工作(slice)。

这有用吗

&#13;
&#13;
testString = "<tagGetIndexXYZ/>"
res = testString.match(/<tag([^/]*)\/\>/)[1].slice(0,-3)
console.log(res)
&#13;
&#13;
&#13;