在javascript中使用substring切割和重建字符串
Cutting out and re-constructing string in javascript with substring
我正在努力与逻辑…假设我有这样一个字符串:
var s = '<span>foo bar</span><img src="www.foo.bar"><img src="www.blah.blah">
<span>blah blah blah</span>';
我想做的是剪掉每个图像的源并重建没有图像源的"s"字符串。这是我到目前为止所做的,但它是错误的…
numImgs = s.match(/<img/gi).length;
if (numImgs > 0) {
var imgSrc, startSrc = 0, endSrc = 0;
for (var i = 0; i < numImgs; i++) {
(function() {
startSrc = s.indexOf('<img src="', endSrc);
endSrc = s.indexOf('"', startSrc + 10);
imgSrc = s.substring(startSrc+10, endSrc);
s = s.substring(0, startSrc+10) + s.substring(endSrc, s.length);
console.log("start: " + startSrc + " end: " + endSrc + "'n" + s);
})(i);
}
}
我明白我不能使用s.indexOf('<img src="', endSrc)
作为开始,因为第二次"s"字符串已经改变,endSrc
是方式。我怎样才能达到我在这里要做的,得到第二个,第三个,第四个img
?
结果将是:
var s = '<span>foo bar</span><img src=""><img src=""><span>blah blah blah</span>';
解决方案:这可能是一种非常肮脏的方式,但对于我所拥有的,我添加了startSrc = s.indexOf('<img src="data');
,所以它会发现src
的第一次出现不是空的。
var s = '<span>foo bar</span><img src="www.foo.bar"><img src="www.blah.blah"><span>blah blah blah</span>';
var srcArray = [];
var result = s.match(/(<img).+?(>)/gi);
for(var i = 0; i < result.length; i++){
var src = result[i].match(/src='"(.+?)'"/);
srcArray.push(src[1]);
}
s = s.replace(/(<img).+?(>)/gi,'<img src=""/>');
console.log(srcArray, s); //["www.foo.bar", "www.blah.blah"] "<span>foo bar</span><img src=""/><img src=""/><span>blah blah blah</span>"
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 可变大小的JavaScript字符串如何成为基元类型
- 将DOM节点值与字符串Javascript进行比较
- 是否有任何库可以为 JSON 数据生成元组和重建字符串
- Ajax iFrame:PHP 不会在我的循环中添加我与 SQL 不同的字符串(以重建 HTML 代码)
- 如何使用 JavaScript 重建字符串
- 如何重建一个blob图像从二进制字符串(客户端隐藏的表单字段)在谷歌应用程序脚本
- 如何拆分和重建字符串
- 在javascript中使用substring切割和重建字符串