嗨,我遇到了一个问题,我要从div类获取文本,然后使用以下命令将其插入到h1中:
var newHeadingText = $(".list-group-item.active").text();
$("#content-wrap").prepend("<h1 class=\"newHeading\">" + newHeadingText + "</h1>");
被调用的文本包含一个数字(取决于购物车中的数字)和一个特定的文本字符串。 “ Premium Tablets 3Items in cart”。
我要删除购物车中的#个项目。
我可以删除文本:
$(".newHeading:contains('Items in cart')").html(function(_, html) {
return html.replace(/Items in cart/g, '');
});
但是因为有时候“ Premium Tablets”中有一个数字,例如“ Premium Tablets 12”,我只想删除直接出现在“购物车中的物品”之前的数字。
如何仅删除文本和前面的数字?
谢谢
答案 0 :(得分:3)
编辑-我本来是误解了要求,因为问题指出“删除前一个号码”。这将替换/删除x items in cart
$(".newHeading:contains('Items in cart')").html(function(_, html) {
return html.replace(/(\d+ items in cart)/gi, '');
});
请参阅:https://regex101.com/r/Nhh9Bf/1
原始
您可以使用“正面看”。这会删除Items in cart
$(".newHeading:contains('Items in cart')").html(function(_, html) {
return html.replace(/(\d+ )(?=items in cart)/gi, '');
});
请参阅:https://regex101.com/r/irn5Sq/1/
或者,请考虑将x items in cart
包装在带有类的范围中。这给您带来了两个好处,您现在可以根据需要设置该片段的样式以使其更加突出,并且您现在拥有一个可用于轻松修改字符串的钩子。您甚至可以将其扩展为显式包装数字。
答案 1 :(得分:0)
这种方法将元素分成2面,其中一个是购物车中的项目,一个是数字。如果您的电话号码始终附加在购物车中“物品”的左侧,则应始终获取该电话号码(无论长度如何)并将其取出。
#include<array>
function remove_string() {
var str = "Jelly Ranchers 12 Items in Cart";
var string_split = str.split("Items in Cart");
var sub_split = string_split[0].split(" ");
var number_split = sub_split[sub_split.length - 2];
var right_string = str.replace("Items in Cart","");
var final_str = right_string.replace(number_split,"");
console.log(final_str);
}
答案 2 :(得分:0)
我找到了一个简单的解决方案。
$(".newHeading:contains('Items in cart')").html(function(_, html) {
return html.replace(/[0-9]Items in cart/g, '');
});