1

AJAX を介して PHP から返される文字列があります。文字列値は次のようになります。

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

<で始まり、で終わる文字列をカットする方法はあります>か?

<img/>文字列からののみが必要です。<img/>完全な文字列が別のページで使用されているため、PHP からのみを返したくありません。

4

4 に答える 4

3

これはどういう意味ですか?これは警告します'<img src="/images/error.png"/>'

jsフィドル

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
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 に答える
1

split() メソッドを使用して、最後の文字を追加することができます。

var returnedString = '<img src="/images/error.png"/>Invalid name';
var returnedImage = returnedString.split('>')[0] +'>';
于 2013-03-20T00:14:13.190 に答える
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 に答える