我有一个通过AJAX从PHP返回的字符串。该字符串值是这样的:在字符串中剪切字符串
<img src="/images/error.png"/>Invalid name`
有没有办法切断开始<
与>
结束串?
我只需要字符串中的<img/>
。我不想从PHP返回唯一的<img/>
,因为整个字符串在另一个页面中使用。
我有一个通过AJAX从PHP返回的字符串。该字符串值是这样的:在字符串中剪切字符串
<img src="/images/error.png"/>Invalid name`
有没有办法切断开始<
与>
结束串?
我只需要字符串中的<img/>
。我不想从PHP返回唯一的<img/>
,因为整个字符串在另一个页面中使用。
这是什么意思?这提醒'<img src="/images/error.png"/>'
var img = '<img src="/images/error.png"/>Invalid name';
var slice = img.slice(0, img.indexOf('>') + 1);
alert(slice);
谢谢。得到我需要的。 – 2013-03-20 00:14:40
您可以使用split() method,并在最后一个字符加回。
var returnedString = '<img src="/images/error.png"/>Invalid name';
var returnedImage = returnedString.split('>')[0] +'>';
var str = '<img src="/images/error.png"/>Invalid name';
alert(str.substring(str.indexOf('<'), str.indexOf('>')+1));
编辑: 如果这个动作将被重复很多次,那么性能也应考虑。 见第2版对于各纯JS回答你走到这一步:第3假设标签从0开始(“<”),最近3别:http://jsperf.com/15512887
我现在就算为自己感到骄傲我的回答会不会被选中的人:-)
+1'slice'和'substring'在'substring'中可能有点小,因为它只是为字符串设计的,其中'slice'适用于所有数组。拆分速度要慢得多,因为它将数组拆分为两个,我们只关心第一个数组。 – 2013-03-20 00:51:39
如果你明确什么获取初始标签只是一个字符串,然后:
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] + '>' : '';
img src里会不会有标签可以是“>”?它会始终以“<”开头吗? – user829323 2013-03-20 00:08:36
要用特定的字符串分隔符“剪切”字符串,请使用split方法:'string.split(“<”)'。如果这个字符串不是静态的,但可以包含任意的HTML,最好使用DOM来解析HTML并获得你想要的部分。 – 2013-03-20 00:08:39
字符串如何不同? – 2013-03-20 00:09:19