ben bir javascript böyle yerini oluşturabilirsiniz biliyoruz: programlı
str = str.replace(/mytarget/g, 'some value');
mytarget
tüm tekrarlarını değiştirmek edeceğini. Bununla birlikte, regex değiştirmede kullanmak istediğim çok sayıda sözcük/deyim var ve düzenli ifadeler yalnızca dil öğeleridir (bildirimde bulunulduğunda bir dizeye sarılı değiller), yeniden ifade etmenin bir yolunu bulamıyorum Onları sabit kodlamadıkça programlı olarak. Ben Yani eğer:
str = str.replace(/word/g, 'some value');
str = str.replace(/another/g, 'some value');
str = str.replace(/hello/g, 'some value');
I gibi ben İfadelerinin kullanabilirsiniz bir örnek gönderilmesi için lütfen:
var arr=['word', 'another', 'hello'];
Ben üretmek istiyorum beyaz boşluk gibi tekrar ifadelere daha fazla ifade ekleyeceğim bu yüzden regexp yoluna ihtiyacım vardı. Son olarak, lütfen eval
kullanarak teklif etmeyin, eminim daha iyi bir yol var. Eğer olacak unutmayın
var word = 'hello';
var re = new RegExp("\\b" + word + "\\b","g");
- Eğer anında reg-exp ürettiğini olursa
Eğer
g
,i
gibi değiştiricileri geçebilir dize, neden normal ifadeler kullanıyor da nedir? Sadece basit bir [dize değiştirme] yapın (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace). – Quentinve değiştirme modeli sadece yukarıda açıkladığım nedenlerle bir regexp'dir. –