用jquery读取.txt文件

时间:2016-10-04 07:31:20

标签: javascript jquery html ajax

我有一个currency.txt文件,其中包含波纹管数据。此文件需要读取,函数应根据currency.txt文件中定义的速率更改值。

我们可以根据文件中的数据阅读并实施更改费率的计算吗?

我们可以在不将文件更改为json文件的情况下读取文件吗?怎么样?

AED: 3.673158
AFN: 66.5531
ALL: 122.0891
AMD: 473.447501
ANG: 1.77635
AOA: 165.574831
ARS: 15.1542
AUD: 1.3111
AWG: 1.7925
AZN: 1.637275
BAM: 1.743055
BBD: 2
BDT: 78.48426
BGN: 1.744303
BHD: 0.377045
BIF: 1664.285005
BMD: 1
BND: 1.35824
BOB: 6.918732
BRL: 3.239768
BSD: 1
BTC: 0.001658952537
BTN: 66.7716
BWP: 10.44955
BYN: 1.9317
BYR: 20026.25
BZD: 2.003485
CAD: 1.315362
CDF: 976.003512
CHF: 0.970299
CLF: 0.024942
CLP: 660.9122
CNY: 6.670311
COP: 2911.736667
CRC: 550.991395
CUC: 1
CUP: 24.728383
CVE: 98.237901
CZK: 24.06994
DJF: 177.6895
DKK: 6.640365
DOP: 46.14923
DZD: 109.20114
EEK: 13.946275
EGP: 8.876718
ERN: 15.345
ETB: 22.18501
EUR: 0.89055
FJD: 2.047283
FKP: 0.771235
GBP: 0.771235
GEL: 2.31522
GGP: 0.771235
GHS: 3.989695
GIP: 0.771235
GMD: 42.59622
GNF: 9085.73
GTQ: 7.521723
GYD: 205.929
HKD: 7.756197
HNL: 22.84758
HRK: 6.675303
HTG: 65.352987
HUF: 272.4474
IDR: 13078.15
ILS: 3.760562
IMP: 0.771235
INR: 66.684569
IQD: 1165.1165
IRR: 30073
ISK: 114.4302
JEP: 0.771235
JMD: 127.627199
JOD: 0.709036
JPY: 100.997801
KES: 101.19139
KGS: 68.521502
KHR: 4094.055
KMF: 438.793335
KPW: 899.91
KRW: 1102.923325
KWD: 0.301276
KYD: 0.824873
KZT: 338.062999
LAK: 8108.6975
LBP: 1509.98835
LKR: 146.360001
LRD: 91.75
LSL: 13.69269
LTL: 3.062908
LVL: 0.624468
LYD: 1.380564
MAD: 9.715581
MDL: 19.74908
MGA: 3052.593333
MKD: 54.86438
MMK: 1240.295
MNT: 2254.463333
MOP: 7.991731
MRO: 355.854167
MTL: 0.683602
MUR: 35.430863
MVR: 15.28
MWK: 718.233316
MXN: 19.76579
MYR: 4.118866
MZN: 77.150002
NAD: 13.66729
NGN: 313.263
NIO: 28.97315
NOK: 8.115266
NPR: 106.6434
NZD: 1.38045
OMR: 0.384972
PAB: 1
PEN: 3.353345
PGK: 3.16725
PHP: 48.0975
PKR: 104.802999
PLN: 3.828987
PYG: 5576.745
QAR: 3.641512
RON: 3.962603
RSD: 109.910661
RUB: 64.00919
RWF: 800.581171
SAR: 3.750628
SBD: 7.839816
SCR: 13.19386
SDG: 6.107271
SEK: 8.542465
SGD: 1.358757
SHP: 0.771235
SLL: 5648.5
SOS: 586.352333
SRD: 7.73675
STD: 21844.6
SVC: 8.747333
SYP: 214.030002
SZL: 13.66699
THB: 34.64227
TJS: 7.877575
TMT: 3.468367
TND: 2.203765
TOP: 2.23775
TRY: 2.962368
TTD: 6.698899
TWD: 31.35474
TZS: 2181.12
UAH: 25.97589
UGX: 3385.153333
USD: 1
UYU: 28.50672
UZS: 2991.175
VEF: 9.977606
VND: 22330.95
VUV: 105.893334
WST: 2.5135
XAF: 584.351655
XAG: 0.05081571
XAU: 0.00075126
XCD: 2.69902
XDR: 0.71484
XOF: 586.950754
XPD: 0.001488
XPF: 106.378
XPT: 0.000882
YER: 250.204
ZAR: 13.69108
ZMK: 5253.075255
ZMW: 10.037938
ZWL: 322.387247



$(document).ready(function() {
  $(".currency-target").change(function() {
    //alert();
    $.ajax({
      url: "currency.txt",
      dataType: "text",
      success: function(data) {
        //alert(3);
        var CurrVal = $('.currency-target :selected').val();
        //alert(CurrVal);
        if (CurrVal == data.) {
          alert();
        }

      }
    });
  });
});

.usdAmt {
  font-size: 1.5em;
  color: DarkGray;
}
.currencyValue {
  font-size: 1.5em;
  margin 0px 5px;
}
input[type="text"] {
  height: 1.4em;
  font-size: 1.2em;
}
.currencyTarget {
  height: 1.8em;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="get">
  <p class="usdAmt">1 US Dollar(s) equals</p>
  <p class="currencyValue"></p>
  <p>
    <input class="exchAmt" type="text" style="width: 4em;margin-right:0.5em; text-align:right;" value="1" />
    <select class="currency-target" style="font-size: 1.5em">
      <option value="">Select a currency</option>
      <option value="AFN">Afghanistan Afghani</option>
      <option value="ALL">Albanian Lek</option>
      <option value="DZD">Algerian Dinar</option>
      <option value="AOA">Angolan Kwanza</option>
      <option value="ARS">Argentine Peso</option>
      <option value="AMD">Armenian Dram</option>
      <option value="AWG">Aruban Florin</option>
      <option value="AUD">Australian Dollar</option>
      <option value="AZN">Azerbaijan New Manat</option>
      <option value="BSD">Bahamian Dollar</option>
      <option value="BHD">Bahraini Dinar</option>
      <option value="BDT">Bangladeshi Taka</option>
      <option value="BBD">Barbados Dollar</option>
      <option value="BYR">Belarusian Ruble</option>
      <option value="BZD">Belize Dollar</option>
      <option value="BMD">Bermudian Dollar</option>
      <option value="BTN">Bhutan Ngultrum</option>
      <option value="BOB">Bolivian Boliviano</option>
      <option value="BAM">Bosnian Mark</option>
      <option value="BWP">Botswana Pula</option>
      <option value="BRL">Brazilian Real</option>
      <option value="GBP">British Pound</option>
      <option value="BND">Brunei Dollar</option>
      <option value="BGN">Bulgarian Lev</option>
      <option value="BIF">Burundi Franc</option>
      <option value="XOF">CFA Franc BCEAO</option>
      <option value="XAF">CFA Franc BEAC</option>
      <option value="XPF">CFP Franc</option>
      <option value="KHR">Cambodian Riel</option>
      <option value="CAD">Canadian Dollar</option>
      <option value="CVE">Cape Verde Escudo</option>
      <option value="KYD">Cayman Islands Dollar</option>
      <option value="CLP">Chilean Peso</option>
      <option value="CNY">Chinese Yuan/Renminbi</option>
      <option value="COP">Colombian Peso</option>
      <option value="KMF">Comoros Franc</option>
      <option value="CDF">Congolese Franc</option>
      <option value="CRC">Costa Rican Colon</option>
      <option value="HRK">Croatian Kuna</option>
      <option value="CUC">Cuban Convertible Peso</option>
      <option value="CUP">Cuban Peso</option>
      <option value="CYP">Cyprus Pound</option>
      <option value="CZK">Czech Koruna</option>
      <option value="DKK">Danish Krone</option>
      <option value="DJF">Djibouti Franc</option>
      <option value="DOP">Dominican R Peso</option>
      <option value="XCD">East Caribbean Dollar</option>
      <option value="EGP">Egyptian Pound</option>
      <option value="SVC">El Salvador Colon</option>
      <option value="EEK">Estonian Kroon</option>
      <option value="ETB">Ethiopian Birr</option>
      <option value="EUR">Euro</option>
      <option value="FKP">Falkland Islands Pound</option>
      <option value="FJD">Fiji Dollar</option>
      <option value="GMD">Gambian Dalasi</option>
      <option value="GEL">Georgian Lari</option>
      <option value="GHS">Ghanaian New Cedi</option>
      <option value="GIP">Gibraltar Pound</option>
      <option value="XAU">Gold (oz)</option>
      <option value="GTQ">Guatemalan Quetzal</option>
      <option value="GNF">Guinea Franc</option>
      <option value="GYD">Guyanese Dollar</option>
      <option value="HTG">Haitian Gourde</option>
      <option value="HNL">Honduran Lempira</option>
      <option value="HKD">Hong Kong Dollar</option>
      <option value="HUF">Hungarian Forint</option>
      <option value="ISK">Iceland Krona</option>
      <option value="INR">Indian Rupee</option>
      <option value="IDR">Indonesian Rupiah</option>
      <option value="IRR">Iranian Rial</option>
      <option value="IQD">Iraqi Dinar</option>
      <option value="ILS">Israeli New Shekel</option>
      <option value="JMD">Jamaican Dollar</option>
      <option value="JPY">Japanese Yen</option>
      <option value="JOD">Jordanian Dinar</option>
      <option value="KZT">Kazakhstan Tenge</option>
      <option value="KES">Kenyan Shilling</option>
      <option value="KWD">Kuwaiti Dinar</option>
      <option value="KGS">Kyrgyzstanian Som</option>
      <option value="LAK">Lao Kip</option>
      <option value="LVL">Latvian Lats</option>
      <option value="LBP">Lebanese Pound</option>
      <option value="LSL">Lesotho Loti</option>
      <option value="LRD">Liberian Dollar</option>
      <option value="LYD">Libyan Dinar</option>
      <option value="LTL">Lithuanian Litas</option>
      <option value="MOP">Macau Pataca</option>
      <option value="MKD">Macedonian Denar</option>
      <option value="MGA">Malagasy Ariary</option>
      <option value="MWK">Malawi Kwacha</option>
      <option value="MYR">Malaysian Ringgit</option>
      <option value="MVR">Maldive Rufiyaa</option>
      <option value="MTL">Maltese Lira</option>
      <option value="MRO">Mauritanian Ouguiya</option>
      <option value="MUR">Mauritius Rupee</option>
      <option value="MXN">Mexican Peso</option>
      <option value="MDL">Moldovan Leu</option>
      <option value="MNT">Mongolian Tugrik</option>
      <option value="MAD">Moroccan Dirham</option>
      <option value="MZN">Mozambique New Metical</option>
      <option value="MMK">Myanmar Kyat</option>
      <option value="ANG">NL Antillian Guilder</option>
      <option value="NAD">Namibia Dollar</option>
      <option value="NPR">Nepalese Rupee</option>
      <option value="NZD">New Zealand Dollar</option>
      <option value="NIO">Nicaraguan Cordoba Oro</option>
      <option value="NGN">Nigerian Naira</option>
      <option value="KPW">North Korean Won</option>
      <option value="NOK">Norwegian Kroner</option>
      <option value="OMR">Omani Rial</option>
      <option value="PKR">Pakistan Rupee</option>
      <option value="PAB">Panamanian Balboa</option>
      <option value="PGK">Papua New Guinea Kina</option>
      <option value="PYG">Paraguay Guarani</option>
      <option value="PEN">Peruvian Nuevo Sol</option>
      <option value="PHP">Philippine Peso</option>
      <option value="PLN">Polish Zloty</option>
      <option value="QAR">Qatari Rial</option>
      <option value="RON">Romanian New Lei</option>
      <option value="RUB">Russian Rouble</option>
      <option value="RWF">Rwandan Franc</option>
      <option value="WST">Samoan Tala</option>
      <option value="STD">Sao Tome/Principe Dobra</option>
      <option value="SAR">Saudi Riyal</option>
      <option value="RSD">Serbian Dinar</option>
      <option value="SCR">Seychelles Rupee</option>
      <option value="SLL">Sierra Leone Leone</option>
      <option value="XAG">Silver (oz)</option>
      <option value="SGD">Singapore Dollar</option>
      <option value="SKK">Slovak Koruna</option>
      <option value="SIT">Slovenian Tolar</option>
      <option value="SBD">Solomon Islands Dollar</option>
      <option value="SOS">Somali Shilling</option>
      <option value="ZAR">South African Rand</option>
      <option value="KRW">South-Korean Won</option>
      <option value="LKR">Sri Lanka Rupee</option>
      <option value="SHP">St Helena Pound</option>
      <option value="SDG">Sudanese Pound</option>
      <option value="SRD">Suriname Dollar</option>
      <option value="SZL">Swaziland Lilangeni</option>
      <option value="SEK">Swedish Krona</option>
      <option value="CHF">Swiss Franc</option>
      <option value="SYP">Syrian Pound</option>
      <option value="TWD">Taiwan Dollar</option>
      <option value="TZS">Tanzanian Shilling</option>
      <option value="THB">Thai Baht</option>
      <option value="TOP">Tonga Pa'anga</option>
      <option value="TTD">Trinidad/Tobago Dollar</option>
      <option value="TND">Tunisian Dinar</option>
      <option value="TRY">Turkish New Lira</option>
      <option value="TMM">Turkmenistan Manat</option>
      <option value="USD">US Dollar</option>
      <option value="UGX">Uganda Shilling</option>
      <option value="UAH">Ukraine Hryvnia</option>
      <option value="UYU">Uruguayan Peso</option>
      <option value="AED">United Arab Emir Dirham</option>
      <option value="VUV">Vanuatu Vatu</option>
      <option value="VEB">Venezuelan Bolivar</option>
      <option value="VND">Vietnamese Dong</option>
      <option value="YER">Yemeni Rial</option>
      <option value="ZMK">Zambian Kwacha</option>
      <option value="ZWD">Zimbabwe Dollar</option>
    </select>
</form>
<p class="feedback"></p>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:1)

您只需解析该文件:

$(document).ready(function() {

  var _converted = {};
  var _currency_txt;

  $(".currency-target").change(function() {
    $.ajax({
      url: "currency.txt",
      dataType: "text",
      success: function(data) {
        _currency_txt = data;

        var CurrVal = $('.currency-target :selected').val();
        var rate = get_currency(CurrVal);
      }
    });
  });

  function get_currency(short_name)
  {
    var list = get_currencies();
    if (typeof list[short_name] !== 'undefined') {
      return list[short_name];
    }
  }

  function get_currencies()
  {
    if ($.isEmptyObject(_converted)) {
      var _tmp = _currency_txt.split("\n");
      for(var i = 0; i < _tmp.length; i++) {
        var _curr = _tmp.split(':');
        _converted[_curr[0]] = parseFloat(_curr[1]);
      }
    }
    return _converted;
  }  
});

答案 1 :(得分:1)

您的问题:

  

我们是否可以阅读并实施更改费率的计算方法   根据文件中的数据?

您可以,因为currency.txt文件数据的格式似乎已修复。但是,每当您想要从中获取特定货币时,您都必须解析currency.txt个文件数据。 (不是很优秀......

  

我们可以在不将文件更改为json文件的情况下读取文件吗?和   如何?

当您获得数据时(我希望您发送数据而不是发送文件),它只会是一个很大的string

&#13;
&#13;
var data = "AED: 3.673158 AFN: 66.5531 ALL: 122.0891 AMD: 473.447501 ANG: 1.77635 AOA: 165.574831 ARS: 15.1542 AUD: 1.3111 AWG: 1.7925 AZN: 1.637275 BAM: 1.743055 BBD: 2 BDT: 78.48426 BGN: 1.744303 BHD: 0.377045 BIF: 1664.285005 BMD: 1 BND: 1.35824 BOB: 6.918732 BRL: 3.239768 BSD: 1 BTC: 0.001658952537 BTN: 66.7716 BWP: 10.44955 BYN: 1.9317 BYR: 20026.25 BZD: 2.003485 CAD: 1.315362 CDF: 976.003512 CHF: 0.970299 CLF: 0.024942 CLP: 660.9122 CNY: 6.670311 COP: 2911.736667 CRC: 550.991395 CUC: 1 CUP: 24.728383 CVE: 98.237901 CZK: 24.06994 DJF: 177.6895 DKK: 6.640365 DOP: 46.14923 DZD: 109.20114 EEK: 13.946275 EGP: 8.876718 ERN: 15.345 ETB: 22.18501 EUR: 0.89055 FJD: 2.047283 FKP: 0.771235 GBP: 0.771235 GEL: 2.31522 GGP: 0.771235 GHS: 3.989695 GIP: 0.771235 GMD: 42.59622 GNF: 9085.73 GTQ: 7.521723 GYD: 205.929 HKD: 7.756197 HNL: 22.84758 HRK: 6.675303 HTG: 65.352987 HUF: 272.4474 IDR: 13078.15 ILS: 3.760562 IMP: 0.771235 INR: 66.684569 IQD: 1165.1165 IRR: 30073 ISK: 114.4302 JEP: 0.771235 JMD: 127.627199 JOD: 0.709036 JPY: 100.997801 KES: 101.19139 KGS: 68.521502 KHR: 4094.055 KMF: 438.793335 KPW: 899.91 KRW: 1102.923325 KWD: 0.301276 KYD: 0.824873 KZT: 338.062999 LAK: 8108.6975 LBP: 1509.98835 LKR: 146.360001 LRD: 91.75 LSL: 13.69269 LTL: 3.062908 LVL: 0.624468 LYD: 1.380564 MAD: 9.715581 MDL: 19.74908 MGA: 3052.593333 MKD: 54.86438 MMK: 1240.295 MNT: 2254.463333 MOP: 7.991731 MRO: 355.854167 MTL: 0.683602 MUR: 35.430863 MVR: 15.28 MWK: 718.233316 MXN: 19.76579 MYR: 4.118866 MZN: 77.150002 NAD: 13.66729 NGN: 313.263 NIO: 28.97315 NOK: 8.115266 NPR: 106.6434 NZD: 1.38045 OMR: 0.384972 PAB: 1 PEN: 3.353345 PGK: 3.16725 PHP: 48.0975 PKR: 104.802999 PLN: 3.828987 PYG: 5576.745 QAR: 3.641512 RON: 3.962603 RSD: 109.910661 RUB: 64.00919 RWF: 800.581171 SAR: 3.750628 SBD: 7.839816 SCR: 13.19386 SDG: 6.107271 SEK: 8.542465 SGD: 1.358757 SHP: 0.771235 SLL: 5648.5 SOS: 586.352333 SRD: 7.73675 STD: 21844.6 SVC: 8.747333 SYP: 214.030002 SZL: 13.66699 THB: 34.64227 TJS: 7.877575 TMT: 3.468367 TND: 2.203765 TOP: 2.23775 TRY: 2.962368 TTD: 6.698899 TWD: 31.35474 TZS: 2181.12 UAH: 25.97589 UGX: 3385.153333 USD: 1 UYU: 28.50672 UZS: 2991.175 VEF: 9.977606 VND: 22330.95 VUV: 105.893334 WST: 2.5135 XAF: 584.351655 XAG: 0.05081571 XAU: 0.00075126 XCD: 2.69902 XDR: 0.71484 XOF: 586.950754 XPD: 0.001488 XPF: 106.378 XPT: 0.000882 YER: 250.204 ZAR: 13.69108 ZMK: 5253.075255 ZMW: 10.037938 ZWL: 322.387247"

var find = function(curr_name){
  var ind = data.indexOf(curr_name)
  var res = ""
  if( ind > -1 ){
    for(var i = ind + 5; i < data.length && data[i] != " "; i++){
      res += data[i]
     }
    
  }
  return res
}

console.log(find("AED"))
&#13;
&#13;
&#13;

替代:

一个不太复杂的替代方案是运行脚本将currency.txt转换为currency.json。然后,当您在客户端获得一个简单的var parsed_data = JSON.parse(data)数据时,您只需执行parsed_data["AED"]即可获得所需内容。

答案 2 :(得分:1)

尝试这个简单的解决方案

publish_actions

答案 3 :(得分:0)

javascript是一种客户端语言,没有文件处理