
[英]Filter out a specific character from string. Only want to remove it if it appears to the left of certain characters
[英]Is it possible to remove a whole string that is left from a certain character
我正在检查字符串的值,并将它们与从网格中获得的值进行比较。 但是我得到的文本在实际有用的字符之前有很多不需要的字符。 但是它们都以 html 标签结尾,所以我想要做的是削减我从该标签获得的价值。
这是我在字符串中得到的东西的一个例子:
<i class="icon status red"></i>, 1 - deleted
我希望字符串是什么:
1 - deleted
到目前为止,我已经尝试过:
data.forEach((value: any) =>{
((this.array.find(x => x.value === value['field'])).text).split("</i>")
});
这只是删除了标签,但我仍然得到文本的 rest。 我正在寻找一个简短的解决方案,而不是这样的:
list = ["foo","bar","foobar"]
index = list.index("bar")
a = list[index - 1]
b = list[index + 1]
print(a, b)
因为我想直接从字符串而不是列表中剪切。 所以我在想的是我会删除所有正确的东西。 可能吗?
为什么要运行 forEach 循环。 使用切片和拆分,您可以拥有想要的字符串,这里是 go:
let string = "<i class='icon status red'></i>, 1 - deleted" let list = string.split(",") console.log(list[1])
可以利用DOMParser
和DOMParser.parseFromString
来访问文本内容...
function getTextContentFromMarkup(markup) { return new DOMParser().parseFromString(markup, "text/html").body.textContent; } console.log( `getTextContentFromMarkup('<i class="icon status red"></i>, 1 - deleted')... "${ getTextContentFromMarkup('<i class="icon status red"></i>, 1 - deleted')}"` );
上面的脚本可以很容易地适应一种更强大的方法,它只返回最后一个文本节点的值......
function getLastTextNodeValueFromMarkup(markup) { return [...new DOMParser().parseFromString(markup, "text/html").body.childNodes ].filter(node => node.nodeType === 3).at(-1)?.nodeValue; } console.log( `getLastTextNodeValueFromMarkup('<i class="icon status red"></i>, 1 - deleted')... "${ getLastTextNodeValueFromMarkup('<i class="icon status red"></i>, 1 - deleted')}"` );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.