2011-09-14 21 views
5

मैं कैसे एक स्ट्रिंग से सभी रिक्त स्थान ट्रिम कर सकते हैं, भले ही वे एक गैर तोड़ने रिक्त स्थान ( )jQuery ट्रिम   को नहीं हटाता है?

उदाहरण के लिए के कारण होता है:

var foo = $.trim($('<p>&nbsp;foo&nbsp;</p>').text()); 

foo का मूल्य " foo " बजाय "foo"

है

अद्यतन तो, समस्या jQuery की ट्रिम फ़ंक्शन नहीं थी। यह बहुत अच्छा काम करता है। समस्या एमएसएजेक्स के ट्रिम समारोह है। jQuery, सही रूप से, फ़ंक्शन पहचान का उपयोग करता है और यदि वे मौजूद नहीं हैं, तो इसका कार्यान्वयन उपयोग करता है।

दुर्भाग्यवश, एमएसएजेक्स का ट्रिम का कार्यान्वयन चार 160 (गैर ब्रेकिंग स्पेस) को नहीं हटाता है। हालांकि, jQuery regex ट्रिम करता है, क्योंकि यह महसूस करता है कि IE में char 160 शामिल नहीं है।

बेवकूफ ब्राउज़र समस्याएं क्यों हैं हमेशा एम $ $ कुछ कैसे लागू करता है के साथ एक मुद्दा होने का अंत हो रहा है ???

+1

मेरे लिए काम करता है: http://jsfiddle.net/uR9WA/ –

+0

1.3.x में एक बग की तरह दिखता है - http://bugs.jquery.com/ticket/4980 –

उत्तर

3

तो, समस्या jQuery के ट्रिम समारोह नहीं था। यह बहुत अच्छा काम करता है। समस्या एमएसएजेक्स के ट्रिम समारोह है। jQuery, सही रूप से, फ़ंक्शन पहचान का उपयोग करता है और यदि वे मौजूद नहीं हैं, तो इसका कार्यान्वयन उपयोग करता है।

दुर्भाग्यवश, एमएसएजेक्स का ट्रिम का कार्यान्वयन चार 160 (गैर ब्रेकिंग स्पेस) को नहीं हटाता है। हालांकि, jQuery regex ट्रिम करता है, क्योंकि यह महसूस करता है कि IE में char 160 शामिल नहीं है।

बेवकूफ ब्राउज़र समस्याएं हमेशा एक समस्या के साथ क्यों होती हैं एम एम $ कुछ कैसे लागू करता है ???

+1

चला रहा हूं भगवान मुझे आईई से नफरत है ..... – Liam

+0

क्या एम $ कार्यान्वयन को बाईपास करने और jQuery की ट्रिम को बल देने का कोई तरीका है? – jbyrd

1

क्या आप इसके बारे में निश्चित हैं? मैं तो बस अब अपनी टुकड़ा का एक थोड़ा संशोधित संस्करण की कोशिश की:

var foo = $.trim($('<p>&nbsp;foo&nbsp;</p>').text()); 
alert('#' + foo + '#'); 

और 'foo' के दोनों तरफ कोई रिक्त स्थान बन रही थीं। http://jsfiddle.net/Ux7Wc/

यह फ़ायरफ़ॉक्स 5.

+0

मुझे अब इतना यकीन नहीं है .. यह कोड में काम नहीं कर रहा है, और मैं डीबगर में मूल्यों को देख रहा हूं और ऐसा लगता है कि ऐसा हो रहा है। लेकिन jsfiddle में मैं समस्या को दोहराना नहीं कर सकता – CaffGeek

+0

समस्या आईईएस देशी ट्रिम है (यदि यह मौजूद है तो कौन सी jquery उपयोग करता है) चार 160 को पट्टी नहीं करता है, जो कि – CaffGeek

+0

सुधार भी बदलता है, यह आईई की मूल ट्रिम नहीं है, लेकिन एमएसएजेक्स का ट्रिम फ़ंक्शन – CaffGeek

संबंधित मुद्दे