JavaScript özel karakterleri Kaçmak

1 Cevap php

Ben tüm karakterler kaçmak için JavaScript bir yöntem gerekir (az / AZ / 0-9 / - / _)

Karakter O ise o zaman aa değiştirilir å eğer, oe ile değiştirilmesi gerektiğini, ve karakterler listesinde değilse daha fazlası ...., onlar bir çizgi ile değiştirilmesi gerekir.

Arka arkaya 2 alt çizgi (__) varsa bunlar tek bir çizgi ile değiştirilmesi gerekir.

Ben JavaScript ve / veya PHP yapılan bu gerekir.

1 Cevap

String.prototype.slugify = function(){
    return this.replace('ø','oe').replace('å','aa').replace(/\W/gi,'_').replace(/_+/g,'_');
}
var x = 'sdfkjshødfjsåkdhf#@$%#$Tdkfsdfxzhfjkasd23hj4rlsdf9';
x.slugify();

.replace('search','replace') desen aşağıdaki İstediğiniz gibi birçok kurallar ekleyin. Eğer dönüştürür, .replace(/\W/gi,'_').replace(/_+/,'_') ile bitirmek emin olun. Ayrıca ø gibi özel karakterleri karşılamak için UTF-8 o kadar hizmet sağlamak.

Strager tarafından önerilen alternatif bir versiyonu:

String.prototype.slugify = function(){
    var replacements = {
    	'ø': 'oe',
    	'å': 'aa'
    }
    var ret = this;
    for(key in replacements) ret = ret.replace(key, replacements[key]);
    return ret.replace(/\W/gi,'_').replace(/_+/g,'_');
}

Bu sürüm kesinlikle daha esnek ve sürdürülebilir olduğunu. Ben kuşaklar için önceki yineleme tutuyorum ama ben, bu kullanmak istiyorum. Harika bir fikir, Strager!