2013-03-20 181 views
1

我有一個通過AJAX從PHP返回的字符串。該字符串值是這樣的:在字符串中剪切字符串

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

有沒有辦法切斷開始<>結束串?

我只需要字符串中的<img/>。我不想從PHP返回唯一的<img/>,因爲整個字符串在另一個頁面中使用。

+0

img src裏會不會有標籤可以是「>」?它會始終以「<」開頭嗎? – user829323 2013-03-20 00:08:36

+0

要用特定的字符串分隔符「剪切」字符串,請使用split方法:'string.split(「<」)'。如果這個字符串不是靜態的,但可以包含任意的HTML,最好使用DOM來解析HTML並獲得你想要的部分。 – 2013-03-20 00:08:39

+0

字符串如何不同? – 2013-03-20 00:09:19

回答

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); 
+0

謝謝。得到我需要的。 – 2013-03-20 00:14:40

1

您可以使用split() method,並在最後一個字符加回。

var returnedString = '<img src="/images/error.png"/>Invalid name'; 
var returnedImage = returnedString.split('>')[0] +'>'; 
1
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

+1'slice'和'substring'在'substring'中可能有點小,因爲它只是爲字符串設計的,其中'slice'適用於所有數組。拆分速度要慢得多,因爲它將數組拆分爲兩個,我們只關心第一個數組。 – 2013-03-20 00:51:39

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] + '>' : '';