Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const make_pattern_builder = function() {
  2.     let chars = [];
  3.     let tags = [];
  4.     return {
  5.         add_chars: function(c) {chars.push(c);},
  6.         add_tag: function(t) {tags.push(`<(?: *)${t}(?: *)>[^<]*<(:? *)/(?: *)${t}(?: *)>`);},
  7.         add_autoclosing_tag : function (t) { tags.push(`<(?: *)${t}(?: *?/? *?)>`) ; },
  8.         get_raw: function() {
  9.             const c = [ `[${chars.join('')}]` ];
  10.             const all = c.concat(tags);
  11.             return all.join('|');
  12.         },
  13.         build: function() {
  14.             return new RegExp(this.get_raw(), "g");
  15.         },
  16.         build_match_all: function() {
  17.             return new RegExp(this.get_raw()+"|.", "g");
  18.         },
  19.         clear_not_matching: function (v){
  20.           const pattern = this.build();
  21.           let parts = null;
  22.           let result = '';
  23.           while(parts = pattern.exec(v)){
  24.             result += parts[0];
  25.           }
  26.           return result;
  27.         }
  28.     }
  29. };
  30.  
  31.  
  32. // Aqu'i empieza.
  33. let pb = make_pattern_builder();
  34.  
  35. pb.add_chars("a-zA-Z ");
  36. pb.add_autoclosing_tag("br");
  37.  
  38. console.log(pb.clear_not_matching("hola <br> / 6666 que tal"));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement