109 votes

JavaScript regex pattern concatenate avec variable

Comment créer un motif regex concaténé avec une variable, quelque chose comme ceci :

var test ="52";
var re = new RegExp("/\b"+test+"\b/"); 
alert('51,52,53'.match(re));

Merci

167voto

bobince Points 270740
var re = new RegExp("/\b"+test+"\b/"); 

\b dans une chaîne littérale est un caractère de retour arrière. Lorsque vous mettez une regex dans une chaîne littérale, vous avez besoin d'un tour de plus pour vous échapper :

var re = new RegExp("\\b"+test+"\\b"); 

(Vous n'avez pas non plus besoin du // dans ce contexte.)

9voto

Lauri Points 692

vous pouvez utiliser

/(^|,)52(,|$)/.test('51,52,53')

mais je suggère d'utiliser

var list = '51,52,53';
function test2(list, test){
    return !((","+list+",").indexOf(","+test+",") === -1)
}
alert( test2(list,52) )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X