पहला समाधान किसी भी UTF-8 वर्णमाला के लिए काम नहीं करता है। (यह ажак जैसे पाठ को काट देगा)। मैं एक फ़ंक्शन बनाने में कामयाब रहा हूं जो RegExp का उपयोग नहीं करता है और जावास्क्रिप्ट इंजन में अच्छे UTF-8 समर्थन का उपयोग करता है। विचार सरल है अगर एक प्रतीक अपरकेस में बराबर है और लोअरकेस एक विशेष चरित्र है। एकमात्र अपवाद व्हॉट्सएप के लिए बनाया गया है।
function removeSpecials(str) {
var lower = str.toLowerCase();
var upper = str.toUpperCase();
var res = "";
for(var i=0; i<lower.length; ++i) {
if(lower[i] != upper[i] || lower[i].trim() === '')
res += str[i];
}
return res;
}
अद्यतन: कृपया ध्यान दें, यह समाधान केवल उन भाषाओं के लिए काम करता है जहां छोटे और बड़े अक्षर हैं। चीनी जैसी भाषाओं में, यह काम नहीं करेगा।
अद्यतन 2: मैं मूल समाधान के लिए आया था जब मैं एक फजी खोज पर काम कर रहा था। यदि आप खोज कार्यक्षमता को लागू करने के लिए विशेष वर्णों को निकालने का प्रयास कर रहे हैं, तो भी बेहतर तरीका है। किसी भी लिप्यंतरण लाइब्रेरी का उपयोग करें जो आपको केवल लैटिन वर्णों से स्ट्रिंग का उत्पादन करेगी और फिर सरल रेगेक्सप विशेष वर्णों को हटाने के सभी जादू करेगा। (यह चीनी के लिए भी काम करेगा और आप भी Tromsø
== बनाकर साइड लाभ प्राप्त करेंगे Tromso
)।