gpt4 book ai didi

javascript - 如何从字符串中删除文本?

转载 作者:搜寻专家 更新时间:2023-11-01 04:18:46 27 4
gpt4 key购买 nike

我有一个变量保存单行字符串,它是这样的 html 元素。

var des = "<p> --Sometext before-- FI: This is fi name, This is fi manufacturer <br /> SE:This is se name, This is se manufacturer <br /> EN: This is en name, This is en manufacturer</p>";

我想选择 FI: until comma sign into an variable and after comma sign until
tag into another variable.也适用于 SE: 和 EN:。

比如结果会是这样

    var fi_name         = "This is fi name";
var fi_manufacturer = "This is fi manufacturer";
var se_name = "This is se name";
var se_manufacturer = "This is se manufacturer";
var en_name = "This is en name";
var en_manufacturer = "This is en manufacturer";

请注意,字符串会动态变化但仍具有相同的模式。

例如:

<p> --Sometext before-- FI:[name],[manufacturer]<br/ >SE:[name],[manufacturer]<br/ >FI:[name],[manufacturer]</p>

您可以在JsFiddle 中查看演示.

现在它抛出空错误。

已编辑 v v v

它在实时网站中不起作用。 des 变量完全像这样。请看http://jsfiddle.net/AM8X2/它再次抛出空值。

最佳答案

您可以只查找指定的模式并从那里提取相关信息:

var des = "<p>FI: This is fi name, This is fi manufacturer <br /> SE:This is se name, This is se manufacturer <br /> EN: This is en name, This is en manufacturer</p>";

var f = function(w, s) {
return new RegExp(w + ':([^,]+)').exec(s)[1];
}

fi = f('FI', des);
se = f('SE', des);
en = f('EN', des);

w + ':([^,]+)'可以解释为:给我取w冒号后的值在s

这是更新的 fiddle .


一个更完整的解决方案,一个处理所有 HTML 标签的解决方案如下:

var f = function(w, s) {
var el = document.createElement('div'), arr;
el.innerHTML = s;

arr = (new RegExp(w + ':([^\n]+)').exec(el.innerText)[1]).split(',');

return {
manufacturer: arr[1],
name: arr[0]
}
}

fi = JSON.stringify(f('FI', des));
se = JSON.stringify(f('SE', des));
en = JSON.stringify(f('EN', des));

这个 fiddle 是 here

要访问这些变量中的任何一个(没有 JSON.stringify() ,直接方法返回,即 f('SE', des) ),你会这样做:

// for fi manufacturer
fi.manufacturer

// for en name
en.name

// etc..

在我看来,通过使用它,您可以采用更加模块化的方法,并且出错的可能性更小。

关于javascript - 如何从字符串中删除文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14121100/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com