在我的React项目中,我有一个这样的字符串:
<App>ew <View id="view1" visible="true">4</View>- <View id="view1" visible="true" width="100">WORD</View>s</App>
,我试图删除标签之外的任何符号和单词,即使文档是有效的XML。
结果应该是这样的:
<App><View id="view1" visible="true"></View> <View id="view2" visible="true" width="100"></View></App>
可能有另一种方法不使用RegExp,我很感激任何帮助
const regex = /(^|>)[^<]+/g;
const test = `abcd<App>ew <View id="view1" visible="true">4</View>- <View id="view1" visible="true" width="100">WORD</View>s</App>abcd`;
console.log(test.replace(regex, "$1"));
我真的很喜欢regex101.com,因为它解决了这样的问题。它有一个可搜索的快速参考,也解释了你当前的正则表达式是如何工作的,它是什么匹配。
这个匹配字符串的开头或文字>一组中的字符,后面跟着一个或多个非"<"字符。它使用global
regex选项允许它找到所有匹配,而不是在第一个之后停止。
然后替换所有匹配到组1($1)的引用。它处理第一个元素之前、最后一个元素之后或XML元素之间的任何内容。
这里有一个正则表达式的链接到regex101.com,这样你就可以看到他们的解释,因为它会比我的更好。
https://regex101.com/r/NgiyTZ/1