Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析Javascript内容_Javascript_Html_Parsing - Fatal编程技术网

解析Javascript内容

解析Javascript内容,javascript,html,parsing,Javascript,Html,Parsing,从html文件解析后,我将javascript代码作为文本,我想从这些字符串中获取“CurrencyCode”:“EUR”,特别是EUR值,那么我可以通过哪种方式实现它?正则表达式?多谢各位 $(document).ready(function() { $('#book-simple').prepend('<div id="spinnerContainer" style="color: #224477;margin:5px 0 15px;text-align:center;

从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" />&nbsp;Cargando pol&iacute;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
$(文档).ready(函数(){
$(“#book simple”).prepend('Cargando polí;ticas…'))
美元邮政(
'bridgeT.php'{
f:“政策”,
h:'010',
d:“[{”RatePlanID:“BAR”,“RatePlanCode:“BAR-SA”,“RatePlanType:“BAR”,“RoomTypeCode:“WSTD”,“ExpireDate:“2014-03-22”,“EffectiveDate:“2014-03-21”,“sources:”BAR”,“ExpiredateDate:“2014-03-21”,“EffectiveDate:”2014-03-21”,“AmountAfterTax:“230.0”,“AmountBefortax:“230.0”,“CurrencyCode:“EUR”,“折扣”:null},{”RatePlanID:“388”,“费率计划代码”:“388-SA”,“费率计划类型”:“OFE”,“房间类型代码”:“WSTD”,“到期日期”:“2014-03-22”,“生效日期”:“2014-03-21”,“来源”:[{“费率来源”:“BAR”,“到期日期”:“2014-03-21”,“生效日期”:“2014-03-21”,“税后金额”:“230.0”,“税前金额”:“230.0”,“货币代码”:“欧元”,“折扣”:{“类型”:“DTO”,“百分比”:“10.0”}}},{,“费率计划ID”:“BAR”,“BAR”费率计划代码“:“BAR-SA”,“折扣”:空}]}]',
l:‘fr_fr’
},功能(d){
字符串内容=html.DocumentNode.OuterHtml

这个内容变量包含javascript代码,现在我想使用Regex来获取CurrencyCode:EUR

这几乎是一个有效的JSON字符串

我不知道你是如何得到这些数据的,但很可能是通过循环输入字段的名称和值之类的东西…无论如何

在Javascript中实现这一点的最佳方法是将对象中实际为“d”键的值的字符串设置为有效的JSON字符串,然后只需获取适当的元素

要使其成为有效的JSON字符串,实际上只需删除最后两个字符“}]”,因为它们与字符串中的任何内容都不匹配

要做到这一点,最好的方法是修复生成此字符串的代码,但如果不能,这里有一个简单但丑陋的方法:

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对你来说是件好事。请看和

不清楚你在问什么。你是说你从HTML页面中刮取了上面的内容,并想将其作为一个文本块搜索CurrencyCode?你用什么语言进行解析?@ChrisBallard:我从html文件解析后得到了这些javascript文本,现在作为文本,我希望从html文件中的javascript文本中获取CurrencyCode:EUR,感谢使用javascript来实现这一点?还是其他语言?我想使用正则表达式从plein字符串值中获取CurrencyCode:EUR,字符串内容=html.DocumentNode.OuterHtml。此内容变量在@ChrisBallard中包含javascript代码