替换文字中的数字

时间:2016-04-07 09:10:12

标签: javascript jquery replace

我正在尝试从String中替换/删除多个Charactes。从Sharepoint我获取多个值,据我所知,当我从sharepointPlus脚本的列表中获取值时,我无法删除这些ID信息。所以我稍后尝试使用jquery和替换它。 我从列表中得到的是以下内容:

  • 4; #Galaxy S6;#
  • 5; #Galaxy S6 edge;#
  • 15; #Galaxy S6 edge +;#
  • 1; #iPhone 6;#13; #iPhone 6 Plus;#2; #iPhone 6s;#14; #iPhone 6s Plus

要删除的结构:; #number和;#在设备名称后面。

我可以看到结构不同,主要条目有ID; #Name;# 最后一个只是ID; #Name

我目前使用的脚本部分是:

$("td.affectedDevices:contains(';#')").each(function() {
    $(this).html(function(index, text) {
        return text.replace('0', '')
                   .replace('1', '')
                   .replace('2', '')
                   .replace('3', '')
                   .replace('4', '')
                   .replace('5', '')
                   .replace('6', '')
                   .replace('7', '')
                   .replace('8', '')
                   .replace('9', '')
                   .replace(';#', '');
    });
});

我在另一个地方使用此代码,我只从表中取出一个条目,然后就可以了。

问题是,JS Above取第一个"数字;#"每个字符串的输入...和设备的编号,如下面的屏幕截图所示:

ActualState

应该是Galaxy S6 <br /> Galaxy S6 edge等等......

我发现了一些类似的问题&amp;答案在这里,但解决方案根本不起作用......

Replacing Wildcard Text 解决方案看起来不错但

$("td.affectedDevices:contains(';#')").each(function() {
    $(this).html(function(index, text) {
        return text.replace(/\([0-9]\);#/, '');
    });
});

没有任何影响...... 有人可以帮我解决这个问题吗?或者更好的想法来完成整个事情?

Fiddle

感谢您的帮助 亲切的问候

2 个答案:

答案 0 :(得分:1)

将您的代码更改为:

$("td.affectedDevices:contains(';#')").each(function() {
    var string = $(this).html(),
    split = string.split('#'),
    newContent = '',
    re = /^[a-zA-Z]+$/;

    $.each(split, function( key, value ) {
        if(/^[a-zA-Z]/.test(value)) newContent = newContent + value.replace(';', '') + '<br />';
    });
    $(this).html(newContent);
});

工作示例: https://jsfiddle.net/vgkyoywq/

祝你好运!

答案 1 :(得分:1)

$("td").each(function() {
    $(this).html(function(index, text) {
        return text.replace(/[0-9]?;#/g, '').replace(/^[0-9]/g, '');
    });
});

希望这会对你有所帮助。

这是工作小提琴:https://jsfiddle.net/1u6brd3m/