簡體   English   中英

如何使用JavaScript從字符串中提取值

[英]How to extract a value from a string using javascript

我有一個包含此值的變量

<AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>

我如何從中提取國家代碼,在這種情況下為733。國家代碼可以不同,因此我需要以某種方式獲取CountryCode標記內的值

您可以通過編程方式創建div 填充其innerHTML ,然后獲取CountryCode元素。

 var data = "<AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>"; var div = document.createElement("div"); div.innerHTML = data; console.log(div.querySelector('CountryCode').textContent); 

更好地使用解析XML

 var data = "<AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>"; var oParser = new DOMParser(); var oDOM = oParser.parseFromString('<root>' + data + '</root>', "text/xml"); console.log(oDOM.querySelector('CountryCode').textContent) 

您可以使用XML解析庫,也可以使用簡單的RegExp(如果這是您唯一想要的東西)。

只需使用正則表達式: /<CountryCode>(\\d+)<\\/CountryCode)/

例如:

var str = '<AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>';

function extractCountryCode(xmlStr) {
    var matches = xmlStr.match(/<CountryCode>(\d+)<\/CountryCode)/);
    if (matches.length == 2) {
        return matches[1];
    } else {
        return null;
    }
}

console.log(extractCountryCode(str));

您可以使用函數indexOf和子字符串:

(添加了摘要以顯示結果)

 var data = "<AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>"; var index1 = data.indexOf("<CountryCode>") + "<CountryCode>".length; var index2 = data.indexOf("</CountryCode>"); var code = data.substring(index1, index2); console.log(code); 

CountryCode.length的添加是因為方法indexOf將返回文本的第一個匹配項。

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM