2012-03-04 51 views
-1

我有一個JavaScript變量,例如:如何解析JavaScript中的HTML名稱?

var s = "<result>Success</result><name>George</name>"; 

我怎樣才能用JavaScript正則表達式的結果「成功」和姓名「喬治?

+0

您遇到麻煩用什麼?斜線?你可以用'\ /'轉義它,或者簡單地用'.'來匹配任何字符。 – 2012-03-04 17:19:34

+0

@KilianFoth你能告訴我一個真實的例子嗎?我用正則表達式並不實用:/ – Maiori 2012-03-04 17:26:31

+0

這個例子是你的字符串的典型例子,還是你實際上在談論更復雜的數據結構? – 2012-03-04 17:29:59

回答

2

正則表達式,你要找的是

var result = s.replace(/.*<result>([^<]*)<\/result>.*/, "$1"); 
var name = s.replace(/.*<name>([^<]*)<\/name>.*/, "$1"); 

然而,作爲一個一般的經驗法則 - 永遠不要使用正則表達式來解析HTML。原因是瀏覽器已經內置了XML解析器,爲什麼使用醜陋的正則表達式來完成瀏覽器已經做的事情?

解析XML:使用 http://www.switchonthecode.com/tutorials/xml-parsing-with-jquery

解析HTML DOM的:How to parse HTML from JavaScript in Firefox?

2

你不應該在XML中使用正則表達式。使用XML解析器http://www.w3schools.com/xml/xml_parser.asp

+0

這是一個例子, be:var s =「[result] Success [/ result] [name] George [/ name]」;我能怎麼做? – Maiori 2012-03-04 17:21:40

+0

如果這是真的,你需要解決你的一致性問題......並儘量保持標準。 – Relic 2012-03-04 17:26:37

+4

這是典型的堆棧溢出回答的一個很好的例子,它並沒有真正回答問題 – kelloti 2012-03-04 17:33:44