从 Javascript/React Native 中的多个字符串数组中删除 html 标签

Posted

技术标签:

【中文标题】从 Javascript/React Native 中的多个字符串数组中删除 html 标签【英文标题】:Removing html tags from multiple strings array in Javascript/React Native 【发布时间】:2022-01-22 00:47:31 【问题描述】:

我收到某些产品项目的一些不良数据,并且在我的 react native 应用程序中创建了一个错误,它无意中输出了粗体 html 标签 - 它没有在网站中执行此操作,因为浏览器将转换粗体标签变成网络上可读的粗体文本。

我想知道检查数组是否包含粗体标记并将其过滤/删除的最佳方法是什么。 这是我返回的数据及其当前呈现方式的示例:

["<bold>Dish Washer</bold>", "fridge", "<bold>kettle</bold", "Oven"]

  . <bold>Dish Washer</bold>
  . Fridge
  . <bold>Kettle</bold>
  . Oven


我还想知道是否有办法检查哪些产品正在显示标签,因为它似乎只发生在某些产品描述中。

【问题讨论】:

“我想知道...” - 到目前为止,您尝试过什么?有任何尝试吗?研究? .indexOf() + .replace(),正则表达式(如果它真的只是&lt;bold&gt;...&lt;/bold&gt;),DOMParser(),... 【参考方案1】:

您可以使用数组 map()+ 字符串替换() 进行快速而肮脏的修复。

类似这样的东西(或者最好使用正则表达式替换):

["<bold>Dish Washer</bold>", "fridge", "<bold>kettle</bold>", "Oven"].map(item => item.replace('<bold>','').replace('</bold>',''))

但实际上你应该解决问题的根源(产品的来源)

【讨论】:

【参考方案2】:

使用 foreach 和替换方法

<script>

var a = ["<bold>Dish Washer</bold>", "fridge", "<bold>kettle</bold>", "Oven"];
var regex = /(<([^>]+)>)/ig;
a.forEach((item) =>
   var values=  item.replace(regex, '');
    console.log(values);***`

> strong text

`***

)
</script>

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。【参考方案3】:

我做了一些实验,找到了这个解决方案。您可以随时更改正则表达式以过滤其他值

const x = ["<bold>Dish Washer</bold>", "fridge", "<bold>kettle</bold", "Oven"];

const regex = /(?<=<bold>)(.*)(?=<\/bold>)/ig;

const result = x.filter(i => !regex.test(i));

【讨论】:

以上是关于从 Javascript/React Native 中的多个字符串数组中删除 html 标签的主要内容,如果未能解决你的问题,请参考以下文章

javascript React Native有用的命令

javascript React Native Biolerplate

javascript React Native Handy

javascript React Native打字稿配置

javascript React-native-Maps - fitToElements

javascript React Native - 语音到文本(我尝试使用IOS https://github.com/wenkesj/react-native-voice,你可以试试Android