1

我有一个通过 AJAX 从 PHP 返回的字符串。字符串值是这样的:

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

有什么办法可以剪断以 开头<和结尾的字符串>

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

4

4 回答 4

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);
于 2013-03-20T00:11:17.220 回答
1

您可以使用split() 方法并添加回最后一个字符。

var returnedString = '<img src="/images/error.png"/>Invalid name';
var returnedImage = returnedString.split('>')[0] +'>';
于 2013-03-20T00:14:13.190 回答
1
var str = '<img src="/images/error.png"/>Invalid name';
alert(str.substring(str.indexOf('<'), str.indexOf('>')+1));

编辑:如果此操作要重复多次,则还应考虑性能。到目前为止,对于每个纯 JS 答案,请参阅 2 个版本:前 3 个假设标签从 0('<')开始,最后 3 个不:http: //jsperf.com/15512887

我现在为自己感到自豪,即使我的答案不是被选中的 :-)

于 2013-03-20T00:16:22.550 回答
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] + '>' : ''; 
于 2013-03-20T08:31:42.550 回答