Come creare un pattern regex che è concatenato con la variabile, qualcosa del genere:
var test ="52";
var re = new RegExp("/\b"+test+"\b/");
alert('51,52,53'.match(re));
Grazie
Risposte:
var re = new RegExp("/\b"+test+"\b/");
\bin una stringa letterale è un carattere backspace. Quando si inserisce una regex in una stringa letterale è necessario un altro round di escape:
var re = new RegExp("\\b"+test+"\\b");
(Inoltre non è necessario //in questo contesto.)
new RegExp('\b'+test+'\b');
When putting a regex in a string literal you need one more round of escaping; ci sono informazioni di base su (le ragioni di) questo?
Con ES2015 (aka ES6) è possibile utilizzare letterali del modello durante la costruzione RegExp :
let test = '53'
const regexp = new RegExp(`\\b${test}\\b`, 'gi') // showing how to pass optional flags
console.log('51, 52, 53, 54'.match(regexp))
new. Tuttavia, per coerenza con altri oggetti in cui ciò potrebbe non essere vero e per chiarezza in generale, lo userei semprenew.