![](/img/trans.png)
[英]How to extract a date value from a string using regexp in 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.