将特殊字符与变量javascript进行比较

compare special characters with variable javascript

本文关键字:比较 javascript 变量 特殊字符      更新时间:2023-09-26

我有一个代码,用于比较我得到的变量是否等于某个值。所以代码是这样的:

if (data[name] == '1222 €'){
     ResultField = ResultField + 'Beschrijving van de maningsprocedure:  : rekeningoverzichten  ' + '<br>';
}

问题是,我得到的是,例如'1222 €'. '1222 €' == '1222 &euro;'是false,所以它不会进入if内部

if (data[name] == '1222 €'){
     ResultField = ResultField + 'Beschrijving van de maningsprocedure:  : rekeningoverzichten  ' + '<br>';
}

由于特殊的字符,代码甚至没有开始执行。那么我该如何使'1222 €' == '1222 &euro;'成为真呢?

这是我正在使用的所有代码:

$(function() {
setTimeout(function() {
   DINK.utils.input.formula.add({
      path : 'IbanDrive/Newcollection/eurosymbol',
      types : {
      'IbanDrive/Newcollection/eurosymbol/FrequentieVanDeManingsprocedure' : 'text',
      'IbanDrive/Newcollection/eurosymbol/tijdstipVdagen' : 'text',
      'IbanDrive/Newcollection/eurosymbol/tijdstipVdagen2' : 'text',
      'IbanDrive/Newcollection/eurosymbol/tijdstipVdagen3' : 'text',
      'IbanDrive/Newcollection/eurosymbol/HeeftUDeLaatsteDrieJaarDebiteurenverliezenGeleden' : 'array',
      'IbanDrive/Newcollection/eurosymbol/empty' : 'text',
      'IbanDrive/Newcollection/eurosymbol/empty2' : 'text',
      'IbanDrive/Newcollection/eurosymbol/empty3' : 'text',
      'IbanDrive/Newcollection/eurosymbol/debiteuren' : 'text',
      'IbanDrive/Newcollection/eurosymbol/debiteuren2' : 'text',
      'IbanDrive/Newcollection/eurosymbol/debiteuren3' : 'text',
      'IbanDrive/Newcollection/eurosymbol/BeschrijvingVanDeManingsprocedure' : 'text',
      'IbanDrive/Newcollection/eurosymbol/ZoJaVoorWelkBedragAantalDebiteuren' : 'array',
      'IbanDrive/Newcollection/eurosymbol/testDim' : 'text'
     },
     names : {
      'IbanDrive/Newcollection/eurosymbol/testDim' : 'testDim'
      },
      change : {
      },
      anyChange : function(data) {
      var FrequentieVanDeManingsprocedure = 'IbanDrive/Newcollection/eurosymbol/FrequentieVanDeManingsprocedure';
      var tijdstipVdagen = 'IbanDrive/Newcollection/eurosymbol/tijdstipVdagen';
      var tijdstipVdagen2 = 'IbanDrive/Newcollection/eurosymbol/tijdstipVdagen2';
      var tijdstipVdagen3 = 'IbanDrive/Newcollection/eurosymbol/tijdstipVdagen3';
      var HeeftUDeLaatsteDrieJaarDebiteurenverliezenGeleden = 'IbanDrive/Newcollection/eurosymbol/HeeftUDeLaatsteDrieJaarDebiteurenverliezenGeleden';
      var empty = 'IbanDrive/Newcollection/eurosymbol/empty';
      var empty2 = 'IbanDrive/Newcollection/eurosymbol/empty2';
      var empty3 = 'IbanDrive/Newcollection/eurosymbol/empty3';
      var debiteuren = 'IbanDrive/Newcollection/eurosymbol/debiteuren';
      var debiteuren2 = 'IbanDrive/Newcollection/eurosymbol/debiteuren2';
      var debiteuren3 = 'IbanDrive/Newcollection/eurosymbol/debiteuren3';
      var BeschrijvingVanDeManingsprocedure = 'IbanDrive/Newcollection/eurosymbol/BeschrijvingVanDeManingsprocedure';
      var ZoJaVoorWelkBedragAantalDebiteuren = 'IbanDrive/Newcollection/eurosymbol/ZoJaVoorWelkBedragAantalDebiteuren';
      var testDim = 'IbanDrive/Newcollection/eurosymbol/testDim';

console.log('write this');
var dinkResultField = '';
if (data[FrequentieVanDeManingsprocedure] == 'wekelijks'){
     dinkResultField = dinkResultField + 'Frequentie van de maningsprocedure:: wekelijks' + '<br>';
}
if (data[FrequentieVanDeManingsprocedure] == '14 daags'){
     dinkResultField = dinkResultField + 'Frequentie van de maningsprocedure:: 14 daags' + '<br>';
}
if (data[FrequentieVanDeManingsprocedure] == 'maandelijks'){
     dinkResultField = dinkResultField + 'Frequentie van de maningsprocedure:: maandelijks' + '<br>';
}
if (data[HeeftUDeLaatsteDrieJaarDebiteurenverliezenGeleden] != undefined){
     if (data[HeeftUDeLaatsteDrieJaarDebiteurenverliezenGeleden].length != 0){
          dinkResultField = dinkResultField + 'Heeft u de laatste drie jaar debiteurenverliezen geleden ? : ';
          for (i = 0; i < data[HeeftUDeLaatsteDrieJaarDebiteurenverliezenGeleden].length; i++) {
               if (data[HeeftUDeLaatsteDrieJaarDebiteurenverliezenGeleden][i] == 'ja '){
                    dinkResultField = dinkResultField + 'ja   ';
               }
               if (data[HeeftUDeLaatsteDrieJaarDebiteurenverliezenGeleden][i] == 'nee'){
                    dinkResultField = dinkResultField + 'nee  ';
               }
          }
dinkResultField = dinkResultField + '<br>';
     }
}
if (data[ZoJaVoorWelkBedragAantalDebiteuren] != undefined){
     if (data[ZoJaVoorWelkBedragAantalDebiteuren].length != 0){
          dinkResultField = dinkResultField + 'Zo ja, voor welk bedrag + aantal debiteuren : ';
          for (i = 0; i < data[ZoJaVoorWelkBedragAantalDebiteuren].length; i++) {
               if (data[ZoJaVoorWelkBedragAantalDebiteuren][i] == 'jaar &#8211 1&euro;'){
                    dinkResultField = dinkResultField + 'jaar &#8211 1  ';
               }
               if (data[ZoJaVoorWelkBedragAantalDebiteuren][i] == 'jaar &#8211 2'){
                    dinkResultField = dinkResultField + 'jaar &#8211 2  ';
               }
               if (data[ZoJaVoorWelkBedragAantalDebiteuren][i] == 'jaar &#8211 3'){
                    dinkResultField = dinkResultField + 'jaar &#8211 3  ';
               }
          }
dinkResultField = dinkResultField + '<br>';
     }
}
if (data[BeschrijvingVanDeManingsprocedure] == 'rekeningoverzichten '){
     dinkResultField = dinkResultField + 'Beschrijving van de maningsprocedure:  : rekeningoverzichten  ' + '<br>';
}
if (data[BeschrijvingVanDeManingsprocedure] == 'telefonische maningen '){
     dinkResultField = dinkResultField + 'Beschrijving van de maningsprocedure:  : telefonische maningen    ' + '<br>';
}
if (data[BeschrijvingVanDeManingsprocedure] == 'ingebrekestelling '){
     dinkResultField = dinkResultField + 'Beschrijving van de maningsprocedure:  : ingebrekestelling    ' + '<br>';
}
data[testDim] = dinkResultField;
       },
      beforeSubmit : function(event, data, params) {
      var FrequentieVanDeManingsprocedure = 'IbanDrive/Newcollection/eurosymbol/FrequentieVanDeManingsprocedure';
      var tijdstipVdagen = 'IbanDrive/Newcollection/eurosymbol/tijdstipVdagen';
      var tijdstipVdagen2 = 'IbanDrive/Newcollection/eurosymbol/tijdstipVdagen2';
      var tijdstipVdagen3 = 'IbanDrive/Newcollection/eurosymbol/tijdstipVdagen3';
      var HeeftUDeLaatsteDrieJaarDebiteurenverliezenGeleden = 'IbanDrive/Newcollection/eurosymbol/HeeftUDeLaatsteDrieJaarDebiteurenverliezenGeleden';
      var empty = 'IbanDrive/Newcollection/eurosymbol/empty';
      var empty2 = 'IbanDrive/Newcollection/eurosymbol/empty2';
      var empty3 = 'IbanDrive/Newcollection/eurosymbol/empty3';
      var debiteuren = 'IbanDrive/Newcollection/eurosymbol/debiteuren';
      var debiteuren2 = 'IbanDrive/Newcollection/eurosymbol/debiteuren2';
      var debiteuren3 = 'IbanDrive/Newcollection/eurosymbol/debiteuren3';
      var BeschrijvingVanDeManingsprocedure = 'IbanDrive/Newcollection/eurosymbol/BeschrijvingVanDeManingsprocedure';
      var ZoJaVoorWelkBedragAantalDebiteuren = 'IbanDrive/Newcollection/eurosymbol/ZoJaVoorWelkBedragAantalDebiteuren';
      var testDim = 'IbanDrive/Newcollection/eurosymbol/testDim';

      }
    });
  }, 1300);
});

您需要使用DOM使浏览器呈现HTML,然后提取生成的纯文本。要做到这一点,您可以使用从文本JavaScript中剥离HTML中解释的技术。基本上,您将HTML字符串注入一个假节点,并从元素的HTML中调用textContent或innerText(旧的Internet Explorer)。

不过,要注意空格、重音、大小写等方面的差异。


我不会说你的语言(荷兰语?),但你显然自己在生成HTML:

dinkResultField = dinkResultField + 'Frequentie van de maningsprocedure:: wekelijks' + '<br>';

您的代码基本上构建了一个长HTML字符串。最有可能的是,您正试图在稍后阶段对其进行解析。只需以方便的格式存储数据。代替:

var amount = "Total: 1234 &euro;";

这样做:

var display = "Total: 1234 &euro;";
var amount = 1234;

&euro;这样的符号是字符的HTML转义,不应该在JavaScript中工作。使用字符本身,如data[name] == '1222 €'中所示,并确保已正确声明JavaScript文件的字符编码。实现这一点的一个简单方法是使用编辑器编写文件,该编辑器允许您将文件保存为UTF-8格式和BOM(因为BOM,字节顺序标记,用作字符编码的指示)。

如果由于某种奇怪的原因无法实现,请使用JavaScript转义,例如在中

data[name] == '1222 'u20AC'