Değişkenle bitiştirilmiş normal ifade kalıbı nasıl oluşturulur?
var test ="52";
var re = new RegExp("/\b"+test+"\b/");
alert('51,52,53'.match(re));
Teşekkürler
Yanıtlar:
var re = new RegExp("/\b"+test+"\b/");
\bbir dizede değişmez bir geri alma karakteridir. Bir dizge hazır bilgisine bir normal ifade koyarken, bir tur daha kaçışa ihtiyacınız vardır:
var re = new RegExp("\\b"+test+"\\b");
( //Bu bağlamda da ihtiyacınız yoktur .)
new RegExp('\b'+test+'\b');
When putting a regex in a string literal you need one more round of escaping; bunun (nedenleri) hakkında herhangi bir arka plan bilgisi var mı?
İle ES2015 (aka ES6) kullanabilirsiniz şablon değişmezleri oluştururken Normİfd :
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. Bununla birlikte, bunun doğru olmayabileceği diğer nesnelerle tutarlılık ve genel olarak netlik için her zaman kullanırdımnew.