2010-09-06 4 views
1

Je dois convertir une chaîne (générée par l'utilisateur) en une règle regex.Javascript Regex - Chaque signe mais pas XX

Mon problème est que je dois dire,

remplacer tous les signes, mais pas a-b, 0-9, moins, point et virgule

J'espère que quelqu'un peut vous aider.

HTML

<div id="d1" class="line1"></div> 

JS

$(function() { 

    new_regex_rule = 'hello,bl.com,dkd-dkd.com,blub,blib,satssan kommt'; 

    // new_regex_rule = new_regex_rule.replace(/[a-z][0-9][-.]/gi,''); 

    $('#d1').append('<hr />'+new_regex_rule+'<hr />'); 

    if(new_regex_rule.match(/\s/)){ new_regex_rule = new_regex_rule.replace(/\s/,'\\s'); } 
    if(new_regex_rule.match(/,/)){ new_regex_rule = new_regex_rule.replace(/\,/,'|'); } 

    $('#d1').append('<hr />'+new_regex_rule+'<hr />'); 
}); 

Exemple de

http://www.jsfiddle.net/V9Euk/517/

Merci d'avance! Peter

EDIT: Est-il possible d'utiliser la chaîne comme règle regex telle quelle?

Répondre

1

celui-ci remplace tous les signes, mais pas ab, 0-9, moins, points et virgules (sensible à la casse)

var regex = /[^a-z0-9.,]/g 
alert("[email protected]?".replace(regex,"X")); 
+2

Pas besoin d'échapper à la '.' à l'intérieur du jeu de caractères et la', 'de toute façon . – Gumbo

+1

testé ici: http://jsfiddle.net/awhVc/ –

+0

@Gumbo Merci pour la leçon. C'était le comportement commun de moi, je sais maintenant est obsolète;) l'a réparé. –

Questions connexes