2012-03-04 200 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