基于base64解码的JSON数据的JavaScript匹配功能

时间:2019-07-02 20:59:58

标签: javascript

我正在尝试获取一些JSON数据并在其中找到一些正则表达式。我的JSON数据是HTML。

这是代码:

function clearArrows(str){
  return str.replace(/&lt;&lt;/g,"<<").replace(/&gt;&gt;/g,">>").replace(/&lt;\/&lt;/g,"<\/<");
}

function explodeCond(str){
  var regEx = /<<.*?>>.*?<\/<.*?>>/g;

  var tagMatches = str.match(regEx);

  var totalArr = [];

  for(var i = 0; i < tagMatches.length; i++){
    var tagMatch = tagMatches[i];
    var regExStart = /<<.*?>>/g;
    var regExEnd = /<\/<.*?>>/g;
    var startTag = tagMatch.match(regExStart);
    var endTag = tagMatch.match(regExEnd);
    var replaced = tagMatch.replace(regExStart,'').replace(regExEnd,'');
    var obj = {
      start: startTag[0],
      contain: replaced,
      end: endTag[0]
    };
    totalArr.push(obj);
    //console.log(replaced);
  }
   return totalArr;
}

var str = "<p>(TAM ZAMANLI)</p><p><strong>Madde 1 - TARAFLAR</strong></p><p>Aşağıda isim (unvan) ve adresleri yazılı bulunan işveren ile işçi arasında, tamamen kendi istek ve serbest iradeleri ile ve belirtilen şartlarla “Belirsiz Süreli İş Sözleşmesi” yapılmıştır. Taraflar bundan sonra “işveren” ve “işçi” olarak anılacaktır.</p><p><strong>1.1-</strong><br>İşveren:&lt;,<br>{{2}}<br><strong>1.2-</strong><br>İşçi:codepen&nbsp;,<br>{{4}}</p><p>&nbsp;</p><p>Her iki taraf da belirtilen adreslerini tebligat adresi olarak kabul etmişlerdir. Adres değişiklikleri usulüne uygun şekilde karşı tarafa tebliğ edilmedikçe en son bildirilen adrese yapılacak tebliğ ilgili tarafa yapılmış sayılır.</p><p>&nbsp;</p><p><strong>Madde 2 - SÖZLEŞMENİN SÜRESİ</strong></p><p>İş bu sözleşme ,{{5}}&nbsp;tarihinde başlamış olup, belirsiz sürelidir.</p><p>İşçi deneme süreli çalıştırılacaktır. Deneme süresi olması durumunda deneme süresi en fazla 2 ay olacaktır. Deneme süresi içinde taraflar iş sözleşmesini bildirim süresine gerek olmaksızın ve tazminatsız feshedebilir.</p><p>&nbsp;</p><p><strong>Madde 3 - İŞÇİNİN ÇALIŞMA YERİ</strong></p><p>İşçi, işin niteliğine uygun olarak işverenin belirlediği bir konumda çalışacaktır.</p><p>&nbsp;</p><p><strong>Madde 4- SÖZLEŞME KONUSU VE YAPILACAK İŞ</strong></p><p>Sözleşmeye konu olan, İşçi'nin iş görme borcu kapsamındaki işi kısaca şu şekilde tanımlanmıştır:<br>{{6}}</p><p>İşin teknik özellik ve diğer ayrıntıları sözleşmeye ek belge olarak ayrıca düzenlenmiştir.<br><br>İşçi, bu sözleşmede belirlenen yükümlülükleri hukuk müşaviri unvanı ile yerine getirecektir.</p><p> <<{{7}}:Haftalık>><br>Burası İşçinin ücret alma periyodu haftalık seçilmesi durumunda gözükecektir.&nbsp;<br></<{{7}}:Haftalık>></p><p><br></p><p><strong>Madde 5-&nbsp; ÜCRET VE ÖDEMEr</strong></p><p>A- İşçi işbu sözleşme kapsamında{{7}}brüt{{8}}maaş karşılığı yapacaktır.<br>&nbsp;</p><p>B- İşçinin sözleşmede yazılı ücreti kural olarak imza karşılığı kendisine ödenir veya banka hesabına yatırılır. Ancak işçinin yazılı talebi ile belirlediği ve bu talebin altındaki tatbiki imzası bulunan yasal temsilcisine de yine imzası karşılığında ödenebilir. Kural olarak işçinin ücretinin ödeme dönemleri şu şekilde belirlenmiştir. Her Ayın{{9}}.günü<br>&nbsp;</p><p>C-Performans geliştirme planlaması sürecinde üzerinde anlaşmaya varılan amaç ve hedeflere dayalı olarak, İşçiye maaş ödemesi dışında performans değerlendirme sonucuna bağlı olarak prim ödemesi söz konusu değildir.<br>&nbsp;</p><p>D-İşveren, dönem ve şartlar dahilinde işçiye ikramiye bedeli ödemeyi taahhüt <u>etmemiştir.</u></p><p>&nbsp;</p>";

var b = $('#main').html();

console.log(explodeCond(str));

在这里,clearArrows()将&gt;<<..... yerine getirecektir.</p> <p>&lt;&lt;{{7}}:Haftalık&gt;&gt;<br> Burası İşçinin ücret alma periyodu haftalık seçilmesi durumunda gözükecektir.&nbsp;<br>&lt;/&lt;{{7}}:Haftalık&gt;&gt;</p><p><br></p> <p><strong>Madde 5-&nbsp;</strong></p> ..... :something>>Other Things</<str:something>>转换为来自base64解码的JSON数据的插入符号。

explodeCond()试图匹配CheckBox regExps。

我正在获取带有JSON的HTML字符串。我正在将其记录到控制台,看起来像这样:

CheckBox

当我在PRESTAZIONI变量上尝试时,它工作正常。但是,当我尝试对来自解码的JSON或HTML元素的数据使用它时,它会给出“未捕获的TypeError:无法读取属性'length'of null'”错误。我不知道为什么会这样。

这里也是WPF CheckBox TwoWay Binding not working

1 个答案:

答案 0 :(得分:0)

我发现了问题。

我们应该使用JSON.stringfy()函数。这是codepen