【发布时间】:2016-04-07 09:10:11
【问题描述】:
我正在尝试从字符串中替换/删除多个字符。据我所知,我从 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 采用每个字符串的第一个“数字;#”条目...以及设备的编号,如下面的屏幕截图所示:
应该是 Galaxy S6 <br /> Galaxy S6 edge 等等...
我在这里已经找到了一些类似的问题和答案,但解决方案根本不起作用......
Replacing Wildcard Text 解决方案看起来不错,但是
$("td.affectedDevices:contains(';#')").each(function() {
$(this).html(function(index, text) {
return text.replace(/\([0-9]\);#/, '');
});
});
没有任何作用... 任何人都可以帮我解决这个问题吗?还是做整个事情的更好主意?
感谢您的帮助 亲切的问候
【问题讨论】:
-
能否请您在此处添加一个小提琴或您的 HTML 以便清晰?
-
你可以试试下面:$("td.affectedDevices:contains(';#')").each(function(index, text) { var text = $(this).html() ; $(this).html(text.replace(/([0-9]);#/, ''); });
-
有没有办法改进你数据库中的数据?这是一个明显的 GIGO 案例
-
为什么要转义正则表达式括号,使其成为文字字符?
text.replace(/\([0-9]\);#/, '')的意思是“一个开始括号,后跟一个 0 到 9 之间的数字,然后是一个结束括号,然后是一个分号,然后是一个 shebang”。使用/[0-9]?;#/g代替意思是“0 到 9 之间的可选数字,后跟分号,后跟 shebang - 替换所有出现 (/g)”。如果可能超过 1 位,请使用*表示“0 到无限匹配”;/[0-9]*;#/g -
@Dreamweaver : 语法错误我将您的想法更改为 $(document).ready(function(){ $("td.affectedDevices:contains(';#')").each(function( index, text) { var text = $(this).html(); $(this).html(text.replace(/([0-9]);#/, '')); }); }) ;但没有变化
标签: javascript jquery replace