2008-12-11 12 views
166

Bir mailto sarmak için jQuery'yi kullanmak istiyorum: bir e-posta adresi etrafında çapa, ancak aynı zamanda CMS'nin oluşturduğu beyaz alanı da kapıyor.jQuery ile metin kaparken beyaz alanı nasıl sorabilirim?

Çalışmam gereken HTML, sahip olduğum komut dosyası ve çıktının bir kopyası.

HTML

<div class="field field-type-text field-field-email"> 
    <div class="field-item"> 
    [email protected] </div> 
</div> 

jQuery JavaScript

$(document).ready(function(){ 
    $('div.field-field-email .field-item').each(function(){ 
    var emailAdd = $(this).text(); 
     $(this).wrapInner('<a href="mailto:' + emailAdd + '"></a>'); 
    }); 
}); 

Oluşturulan HTML

<div class="field field-type-text field-field-email"> 
    <div class="field-items"><a href="mailto:%0A%20%20%20%[email protected]%20%20%20%20"> 
    [email protected] </a></div> 
</div> 

Bu soruyu okurken diğerleri sadece baştaki ve atık boşluk şerit isteyebilirsiniz şüpheli olsa da, ben Ben bir e-posta adresi olduğunu düşündüğüm tüm boşlukları kaybetmekten oldukça memnunum. sarma.

+0

Olası kopya: https://stackoverflow.com/questions/10800355/remove-whitespaces-inside-a-string-in-javascript –

cevap

308

Kullanım js replace işlevi:

Eğer lider ve sondaki boşluk sadece kaldırmak jQuery $ .trim yöntem kullanmak istiyorsanız tüm boşlukları

kaldıracaktır

var emailAdd = $(this).text().replace(/ /g,''); 

:

var emailAdd = $.trim($(this).text()); 
+11

Doğru ama/\ s/g daha net bir desen olacaktır ("i" gereksiz ve '' olağandışı bir biçimdir - aynı zamanda/(^ \ s *) | (\ s * $)/g 'nin bir kalıbının fwiw'idir. – annakata

+1

Doğru annakata'sınız, ben/i kaldırdım çünkü Bu durumda büyük/küçük harf duyarlılığı bir sorun değil –

+6

Dikkatli olmak için bir şey IE'nin kırılmayan alanları ( ,  ,  , \ xA0, \ u00A0 vb.) beyaz olarak kabul etmemesidir. boşluk, yani/[\ s \ xA0] +/g tüm boşlukları değiştirmek için daha güvenilir olabilir – travis

63

Aslında jQuery trim fonksiyonu inşa etti:

Ayrıntılar için bkz. here.

+4

sadece son ve başlangıç ​​... – worenga

+0

bu yazmaz rk, sadece başlangıç ​​ve bitiş –

+3

çünkü her yerleşik özellik bir jQuery sarıcısına sahip olmalıdır – jasonszhao

24

str=str.replace(/^\s+|\s+$/g,'');

+1

Bu, PHP kırpma işlevi gibi önde gelen ve sondaki boşlukları kaldırır. – Paul

+1

Kendinizi açıklayabilir misiniz? –

+1

@FranciscoCorralesMorales: Burada bir seçeneğiniz olduğunu düşünüyorum: Düzenli ifadeler hakkında bilgi edinin veya yapmayın. Bunu yaparsanız, ifade kendini belli eder ve eğer bunu yapmazsanız açıklamak zor olur, bu yüzden anlaşılması kolaydır. Yani: Normal ifadeler hakkında bilgi edinin.Onları öğrenmeye çalıştıktan sonra hala anlamıyorsanız, tam olarak anlamadığınız şey hakkında belirli bir soru sorun. –

85

JavaScript süslerini inşa etti:

str.trim() 

O IE8'de çalışmaz. Eski tarayıcıları desteklemeniz gerekiyorsa, Tuxmentat's veya Paul's yanıtını kullanın.

+0

Düğüm için harika. – JustGage

İlgili konular