剪切字符串中的字符串

时间:2013-03-20 00:07:06

标签: javascript jquery string image substring

我有一个通过AJAX从PHP返回的字符串。字符串值如下:

<img src="/images/error.png"/>Invalid name`

有没有办法剪切以<开头并以>结尾的字符串?

我只需要字符串中的<img/>。我不想从PHP返回唯一的<img/>,因为在另一页中使用了完整的字符串。

4 个答案:

答案 0 :(得分:3)

这是什么意思?这会提醒'<img src="/images/error.png"/>'

jsFiddle

var img = '<img src="/images/error.png"/>Invalid name';
var slice = img.slice(0, img.indexOf('>') + 1);
alert(slice);

答案 1 :(得分:1)

您可以使用split() method并在最后一个字符中添加回来。

var returnedString = '<img src="/images/error.png"/>Invalid name';
var returnedImage = returnedString.split('>')[0] +'>';

答案 2 :(得分:1)

var str = '<img src="/images/error.png"/>Invalid name';
alert(str.substring(str.indexOf('<'), str.indexOf('>')+1));

编辑: 如果这个动作要重复多次,那么也应该考虑性能。 到目前为止,每个纯JS答案都会看到2个版本:前3个假设标签从0开始('&lt;'),最后3个不是:http://jsperf.com/15512887

即使我的回答不是被选中的,我现在也为自己感到骄傲: - )

答案 3 :(得分:0)

如果明确要获取字符串的初始标记,那么:

var s = '  <img src="/images/error.png"/>Invalid name';

var tag = '<' + s.split(/\W+/g)[1] + '>';

虽然为了健壮,你应该做类似的事情:

var parts = s.split(/\W+/g);
var tag = parts.length? '<' + parts[1] + '>' : '';