online: 2; azi: 838; total: 51293 Webdesign - Coduri-si-functii-in-js - 15

JavaScript strip_tags si stripslashes

Functiile strip_tags() si stripslashes() sunt in general cunoscute si folosite in PHP. Aceste functii sunt utile cand se lucreaza cu siruri ce contin cod HTML. JavaScript nu are predefinite aceste functii.
Iata varianta lor pentru JavaScript.

strip_tags

strip_tags(string, allow) - returneaza sirul "string" fara tag-uri HTML sau PHP.
Parametrul allow este optional, reprezinta un sir cu tag-urile permise, care nu vor fi sterse, un sir precum acesta: ("<b><i><u>").
Cod:
function strip_tags(str, allow) {
  // asigura ca parametrul allaw e un sir ce contine doar tag-uri (<a><b><c>)
  allow = (((allow || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('');

  var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi;
  var commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
  return str.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
    return allow.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
  });
}

Exemplu:
<div id="sresult"></div>
<script type="text/javascript"><!--
// strip_tags - de la www.phpjs.org
function strip_tags(str, allow) {
  // asigura ca parametrul allaw e un sir ce contine doar tag-uri (<a><b><c>)
  allow = (((allow || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('');

  var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi;
  var commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
  return str.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
    return allow.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
  });
}

var str = '<p>Paragraf test.</p><!-- Comentariu HTML --> <a href="http://www.discant.ro/">discant.ro</a>.<br/>Linie noua: <b>Bold</b>, si <u>Subliniat</u>. Un tag span deschis: <span>*';

var str1 = strip_tags(str);                  // sterge toate tag-urile
var str2 = strip_tags(str, '<b><u>');        // permite <b> si <u>

// adauga str1 si str2 in pagina web
document.getElementById('sresult').innerHTML = 'str1: '+ str1+ '<br/>str2: '+ str2;
--></script>
Rezultat:
str1: Paragraf test. discant.ro.Linie noua: Bold, si Subliniat. Un tag span deschis: *
str2: Paragraf test. discant.ro.Linie noua: Bold, si Subliniat. Un tag span deschis: *

stripslashes

stripslashes() - sterge caracterele backslash ("\") dintr-un sir. Returneaza sirul fara caracterele backslash (\", si \' devin: " si '). Dublu backslashes (\\) sunt transformate intr-un singur backslash (\).
Cod:
function stripslashes(str) {
 return str.replace(/\\'/g,'\'').replace(/\"/g,'"').replace(/\\\\/g,'\\').replace(/\\0/g,'\0');
}

Exemplu:
<script type="text/javascript"><!--
// stripslashes
function stripslashes(str) {
 return str.replace(/\\'/g,'\'').replace(/\"/g,'"').replace(/\\\\/g,'\\').replace(/\\0/g,'\0');
}

var str = 'Sir cu \"backslashes\", \\ www.discant.ro/';
str = stripslashes(str);

alert(str);       // Sir cu "backslashes", \ www.discant.ro/
--></script>