从 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()
,正则表达式(如果它真的只是<bold>...</bold>
),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 Biolerplate
javascript React-native-Maps - fitToElements
javascript React Native - 语音到文本(我尝试使用IOS https://github.com/wenkesj/react-native-voice,你可以试试Android