在从html文件解析后,我将javascript代码作为文本,并且我希望从这些字符串中获取“CurrencyCode”:“EUR”,尤其是EUR值,那么我可以通过哪种方式实现它?正则表达式?谢谢
$(document).ready(function() {
$('#book-simple').prepend('<div id="spinnerContainer" style="color: #224477;margin:5px 0 15px;text-align:center;"><img src="/img/spinner2.gif" /> Cargando políticas...</div>')
$.post(
'bridgeT.php', {
f: 'policies',
h: '010',
d: '[{"RatePlanID":"BAR","RatePlanCode":"BAR-SA","RatePlanType":"BAR","RoomTypeCode":"WSTD","ExpireDate":"2014-03-22","EffectiveDate":"2014-03-21","sources":[{"RateSource":"BAR","ExpireDate":"2014-03-21","EffectiveDate":"2014-03-21","AmountAfterTax":"230.0","AmountBeforeTax":"230.0","CurrencyCode":"EUR","Discount":null}]},{"RatePlanID":"388","RatePlanCode":"388-SA","RatePlanType":"OFE","RoomTypeCode":"WSTD","ExpireDate":"2014-03-22","EffectiveDate":"2014-03-21","sources":[{"RateSource":"BAR","ExpireDate":"2014-03-21","EffectiveDate":"2014-03-21","AmountAfterTax":"230.0","AmountBeforeTax":"230.0","CurrencyCode":"EUR","Discount":{"Type":"DTO","Percent":"10.0"}}]},{"RatePlanID":"BAR","RatePlanCode":"BAR-SA","Discount":null}]}]',
l: 'fr_FR'
}, function(d) {
string content = html.DocumentNode.OuterHtml
此内容变量里面有javascript代码,现在我希望使用Regex来获取CurrencyCode:EUR
答案 0 :(得分:0)
这几乎是一个有效的JSON字符串。
我不知道你是如何得到这些数据的,但很可能是通过循环输入字段的名称和值或类似的东西......无论如何。
在Javascript中执行此操作的最佳方法是使实际上是对象中'd'键值的String成为有效的JSON字符串,然后您只需获取相应的元素。
要使其成为有效的JSON字符串,您实际上只需删除最后两个字符'}]',因为它们与字符串中的任何内容都不匹配。
要做到这一点,最好的方法是修复产生这个String的代码,但如果你不能在这里做一个简单但丑陋的方式:
var incorrectString = '[{"RatePlanID":"BAR","RatePlanCode":"BAR-SA","RatePlanType":"BAR","RoomTypeCode":"WSTD","ExpireDate":"2014-03-22","EffectiveDate":"2014-03-21","sources":[{"RateSource":"BAR","ExpireDate":"2014-03-21","EffectiveDate":"2014-03-21","AmountAfterTax":"230.0","AmountBeforeTax":"230.0","CurrencyCode":"EUR","Discount":null}]},{"RatePlanID":"388","RatePlanCode":"388-SA","RatePlanType":"OFE","RoomTypeCode":"WSTD","ExpireDate":"2014-03-22","EffectiveDate":"2014-03-21","sources":[{"RateSource":"BAR","ExpireDate":"2014-03-21","EffectiveDate":"2014-03-21","AmountAfterTax":"230.0","AmountBeforeTax":"230.0","CurrencyCode":"EUR","Discount":{"Type":"DTO","Percent":"10.0"}}]},{"RatePlanID":"BAR","RatePlanCode":"BAR-SA","Discount":null}]}]'
var correctedString = incorrectString.substring(0, incorrectString.length - 2);
然后它是微不足道的:
var rateObject = JSON.parse(correctedString)
var CurrencyCode = rateObject[0].sources[0].CurrencyCode
所有这些构建的方式让我觉得有点读Javascript和JSON对你来说是件好事。请参阅Javascript Objects和JSON.org