कन्वर्ट जावास्क्रिप्ट स्ट्रिंग सभी निचले मामले हो?


1289

मैं एक जावास्क्रिप्ट स्ट्रिंग मान को सभी निचले अक्षरों में कैसे बदल सकता हूं?

उदाहरण: "आपका नाम" से "आपका नाम"

जवाबों:


1681
var lowerCaseName = "Your Name".toLowerCase();

27
इस पर भी विचार करें, "toLowerCase स्ट्रिंग स्ट्रिंग के मूल्य को प्रभावित नहीं करता है"। यह एक दस्तावेज पर आधारित है, यहाँ developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
Cary Bondoc

toLowerCase()कार्य का समय और स्थान जटिलता क्या है ?
रमजान चैसीगोव

7
@RamzanChasygov यह O (n) दोनों है और इसे जावास्क्रिप्ट में पुन: लागू करने की तुलना में तेज़ है, जब तक कि आपके पास एक जावास्क्रिप्ट इंजन बहुत बुद्धिमान बेवकूफों द्वारा क्रमादेशित नहीं है।
wizzwizz4

1
toLowerCase()चर पर आमंत्रित करने का एक सुरक्षित तरीका होगा (varName || '').toLowerCase();
दिनेश पांडियन

412

स्ट्रिंग ऑब्जेक्ट के toLowerCase या toLocaleLowerCase विधियों का उपयोग करें । अंतर यह है कि उपयोगकर्ता के वर्तमान स्थान को ध्यान में रखेगा / होस्ट करेगा। ECMAScript भाषा विनिर्देश (ECMA-262) के AS 15.5.4.17 के अनुसार , …toLocaleLowerCasetoLocaleLowerCase

… ठीक वैसा ही काम करता है जैसे कि LowerCase, सिवाय इसके कि इसका परिणाम स्थानीय-स्वतंत्र परिणाम के बजाय मेजबान पर्यावरण के वर्तमान स्थान के लिए सही परिणाम प्राप्त करना है। केवल कुछ मामलों (जैसे तुर्की) में अंतर होगा जहां नियमित यूनिकोड केस मैपिंग के साथ उस भाषा के संघर्ष के नियम हैं।

उदाहरण:

var lower = 'Your Name'.toLowerCase();

यह भी ध्यान दें कि किसी भी प्रकार के मूल्य पर उदारतापूर्वक कार्य करने के लिए कार्य toLowerCaseऔर toLocaleLowerCaseकार्य कार्यान्वित किए जाते हैं । इसलिए आप इन कार्यों को गैर- वस्तुओं पर भी लागू कर सकते हैं। ऐसा करने से परिणामस्वरूप स्ट्रिंग में प्रत्येक वर्ण के मामले को बदलने से पहले एक स्ट्रिंग मान के लिए स्वचालित रूपांतरण होगा। उदाहरण के लिए, आप इस तरह सीधे तारीख पर आवेदन कर सकते हैं :String toLowerCase

var lower = String.prototype.toLowerCase.apply(new Date());

और जो प्रभावी रूप से इसके बराबर है:

var lower = new Date().toString().toLowerCase();

दूसरा रूप आम तौर पर इसकी सादगी और पठनीयता के लिए पसंद किया जाता है। IE के पुराने संस्करणों पर, पहले का लाभ था कि यह एक nullमूल्य के साथ काम कर सकता है । आवेदन करने का परिणाम toLowerCaseया उस toLocaleLowerCaseपर परिणाम nullहोगा null(और एक त्रुटि स्थिति नहीं)।


22
+1, यह उत्तर स्वीकृत तरीके से अधिक वोटों का हकदार है, जो कुछ भी नहीं बताता है, मेरा मतलब है
फ्रेडरिक

String.prototype.toLowerCase.apply(null)लौटने के बारे में हिस्सा nullसही प्रतीत नहीं होता है। TypeErrorजब मैं इसे आज़माता हूं तो यह एक अपवाद फेंकता है ।
जॉनी एचएचके

2
@ जॉननी आप सही कह रहे हैं। यह बिट IE के पुराने संस्करणों पर सही पकड़ के लिए इस्तेमाल किया गया था, जहां यह उस समय परीक्षण किया गया था जब उत्तर मूल रूप से पोस्ट किया गया था। मैंने आपकी प्रतिक्रिया को प्रतिबिंबित करने के लिए उत्तर अपडेट कर दिया है। धन्यवाद।
आतिफ अज़ीज़

29

हां, जावास्क्रिप्ट में किसी भी स्ट्रिंग की एक toLowerCase()विधि है जो एक नया स्ट्रिंग लौटाएगी जो सभी निचले मामलों में पुराना स्ट्रिंग है। पुरानी स्ट्रिंग अपरिवर्तित रहेगी।

तो, आप कुछ ऐसा कर सकते हैं:

"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();

20

toLocaleUpperCase () या निचले मामले के कार्य ऐसे व्यवहार नहीं करते हैं जैसे उन्हें करना चाहिए।

उदाहरण के लिए मेरे सिस्टम में, सफारी 4, क्रोम 4 बीटा, फ़ायरफ़ॉक्स 3.5.x यह स्ट्रिंग को गलत तरीके से तुर्की वर्णों के साथ परिवर्तित करता है।

ब्राउज़र क्रमशः "en-US", "tr", "en-US" के रूप में navigator.language का जवाब देते हैं।

लेकिन ब्राउज़र में उपयोगकर्ता की एक्सेप्ट-लैंग सेटिंग प्राप्त करने का कोई तरीका नहीं है जहाँ तक मुझे मिल सकता है।

केवल क्रोम मुझे परेशानी देता है, हालांकि मैंने हर ब्राउज़र को ट्र-टीआर लोकेल के रूप में कॉन्फ़िगर किया है।

मुझे लगता है कि ये सेटिंग्स केवल HTTP हेडर को प्रभावित करती हैं, लेकिन हम जेएस के माध्यम से इन सेटिंग्स तक नहीं पहुंच सकते।

में मोज़िला प्रलेखन यह कहते हैं, "एक स्ट्रिंग के भीतर पात्रों के लिए परिवर्तित कर रहे हैं ... जबकि वर्तमान स्थान का सम्मान।

अधिकांश भाषाओं के लिए, यह उसी तरह वापस आएगा ... "।

मुझे लगता है कि यह तुर्की के लिए मान्य है, यह अलग नहीं है जो इसे एन या ट्र के रूप में कॉन्फ़िगर किया गया है।

तुर्की में इसे "DİNÇ" को "dinç" और "DIN to" को "dınç" या इसके विपरीत में बदलना चाहिए।


Accept-Languageऔर navigator.languageदो पूरी तरह से अलग सेटिंग्स हैं। Accept-Languageवेब पेजों में वे कौन सी भाषाएं प्राप्त करना चाहते हैं (और यह सेटिंग पूरी तरह से जेएस के लिए दुर्गम है) के लिए उपयोगकर्ता की चुनी हुई प्राथमिकताओं को दर्शाता है। navigator.languageकेवल यह दर्शाता है कि वेब ब्राउज़र का कौन सा स्थानीयकरण स्थापित किया गया था, और आमतौर पर किसी भी चीज़ के लिए इसका उपयोग नहीं किया जाना चाहिए। ये दोनों मान सिस्टम लोकेल से असंबंधित हैं, जो कि बिट है जो यह तय करता है कि क्या toLocaleLowerCase()करेगा; यह एक OS- स्तर है जो ब्राउज़र के प्रीफ़ के दायरे से बाहर है।
बॉब

मुझे लगा कि एक्सेप्ट-लैंग्वेज और नेविगेटर.लंगेज किसी तरह संबंधित होना चाहिए। आप ब्राउज़र की सेटिंग स्क्रीन के माध्यम से डिफ़ॉल्ट भाषा को कॉन्फ़िगर कर सकते हैं, लेकिन इसलिए आप कॉन्फ़िगर नहीं कर सकते हैं कि नेविगेटर को क्या जवाब देना चाहिए। मुझे लगता है कि वहाँ एक और प्रकार का फ़ंक्शन होना चाहिए toLowerCase () जिसे एक स्थानीय पैरामीटर मिलता है।
सानिलुनलू

हाँ, वास्तव में होना चाहिए। दुर्भाग्य से जावास्क्रिप्ट में स्थानीय-संबंधित विशेषताएं कमजोर, खराब-निर्दिष्ट और आम तौर पर अविश्वसनीय हैं।
बोबिन्स

15

अभी तक उपलब्ध नहीं है या के लिए एक उदाहरण toLowerCase(), toUpperCase()और प्रोटोटाइप के लिएtoTitleCase()toPropperCase()

String.prototype.toTitleCase = function() {
  return this.split(' ').map(i => i[0].toUpperCase() + i.substring(1).toLowerCase()).join(' ');
}

String.prototype.toPropperCase = function() {
  return this.toTitleCase();
}

var OriginalCase = 'Your Name';
var lowercase = OriginalCase.toLowerCase();
var upperCase = lowercase.toUpperCase();
var titleCase = upperCase.toTitleCase();

console.log('Original: ' + OriginalCase);
console.log('toLowerCase(): ' + lowercase);
console.log('toUpperCase(): ' + upperCase);
console.log('toTitleCase(): ' + titleCase);

2018 संपादित किया गया


1
toPropperCaseहोना चाहिएtoProperCase
इयान

-1 यह कोड गैर-ASCII सब कुछ के साथ त्रुटियों के लिए बहुत प्रवण है। उदाहरण के लिए, जर्मन इनपुट "डाई स्ट्रैस" के साथ, आपको शीर्षक केस के रूप में "डाई स्ट्रैस" मिलेगा। सही होगा "डाई स्ट्राई"। इसके अलावा, प्रोटोटाइप प्रदूषण आजकल बहुत अधिक है।
ComFreek

13

मैं ध्यान भुगतान किया है कि बहुत से लोग कर रहे हैं देख के लिए strtolower()जावास्क्रिप्ट में। वे अन्य भाषाओं के समान फ़ंक्शन नाम की अपेक्षा कर रहे हैं, इसीलिए यह पोस्ट यहाँ है।

मैं देशी जावास्क्रिप्ट फ़ंक्शन का उपयोग करने की सलाह दूंगा

"SomE StriNg".toLowerCase()

यहां वह फ़ंक्शन है जो PHP के एक के समान व्यवहार करता है (उन लोगों के लिए जो PHP कोड को js में पोर्ट कर रहे हैं)

function strToLower (str) {
    return String(str).toLowerCase();
}

किस + ''लिए है?
अपेरिक

8

ध्यान दें कि फ़ंक्शन केवल STRING ऑब्जेक्ट्स पर काम करेगा।

उदाहरण के लिए, मैं एक प्लगइन का उपभोग कर रहा था, और उलझन में था कि मुझे "एक्सटेंशन.टोलरकेस क्यों नहीं मिल रहा है" जेएस त्रुटि नहीं है।

 onChange: function(file, extension)
    {
      alert("extension.toLowerCase()=>" + extension.toLowerCase() + "<=");

जिसने त्रुटि का विस्तार किया "एक्सटेंशन ।toLowerCase एक फ़ंक्शन नहीं है" इसलिए मैंने कोड के इस टुकड़े की कोशिश की, जिससे समस्या का पता चला!

alert("(typeof extension)=>" + (typeof extension) + "<=");;

आउटपुट "(टाइपोफ़ एक्सटेंशन) => ऑब्जेक्ट <=" था - इसलिए आह, मुझे अपने इनपुट के लिए एक स्ट्रिंग संस्करण नहीं मिल रहा था। हालांकि फिक्स सीधे आगे है - बस एक स्टिंग में डार चीज को मजबूर करें !:

var extension = String(extension);

कलाकारों के बाद, extension.toLowerCase () फ़ंक्शन ने ठीक काम किया।


8

विधि या समारोह: tolowerCase (), toUpperCase ()

विवरण: इन विधियों का उपयोग निचले मामले से ऊपरी मामले या इसके विपरीत स्ट्रिंग या वर्णमाला को कवर करने के लिए किया जाता है। उदाहरण के लिए: "और" से "और"।

ऊपरी मामले में परिवर्तित: - उदाहरण कोड: -

<script language=javascript>
var ss = " testing case conversion method ";
var result = ss.toUpperCase();
document.write(result);
</script>

परिणाम: परीक्षण मामले विधि विधि

निचले मामले में परिवर्तित: - उदाहरण कोड:

<script language=javascript>
var ss = " TESTING LOWERCASE CONVERT FUNCTION ";
var result = ss.toLowerCase();
document.write(result);
</script>

परिणाम: परीक्षण लोअरकेस कन्वर्ट फ़ंक्शन

स्पष्टीकरण: उपरोक्त उदाहरणों में,

toUpperCase() method converts any string to "UPPER" case letters.
toLowerCase() method converts any string to "lower" case letters.


2

ऑप्ट 1: toLowerCase () का उपयोग कर;

var x = "ABC";
x=x.toLowerCase();

ऑप्ट 2: अपने स्वयं के फ़ंक्शन का उपयोग करना

 function convertToLowerCase(str) {
      var result = ''

      for (var i = 0; i < str.length; i++) {
        var code = str.charCodeAt(i)
        if (code > 64 && code < 91) {
          result += String.fromCharCode(code + 32)
        } else {
          result += str.charAt(i)
        }
      }
      return result
    }

इसे इस रूप में कहें:

x= convertToLowerCase(x);

पहले विकल्प को पहले से ही अन्य उत्तरों में उल्लेख किया गया है, दूसरा विकल्प गैर-एएससीआईआई के लिए बुरी तरह से विफल हो गया है।
ComFreek


-1

मामले में आप इसे स्वयं बनाना चाहते हैं:

function toLowerCase(string) {

let lowerCaseString = "";

for (let i = 0; i < string.length; i++) {
    //find ASCII charcode
    let charcode = string.charCodeAt(i);

    //if uppercase
    if (charcode > 64 && charcode < 97){
        //convert to lowercase
        charcode = charcode + 32
    }

    //back to char
    let lowercase = String.fromCharCode(charcode);

    //append
    lowerCaseString = lowerCaseString.concat(lowercase);
}

return lowerCaseString

}


-2

आप जावास्क्रिप्ट स्ट्रिंग्स पर अंतर्निहित .toLowerCase () विधि का उपयोग कर सकते हैं। ex: var x = "हेलो"; x.toLowerCase ();


1
यह स्वीकृत उत्तर माइनस गुड कोड फॉर्मेटिंग के समान है
रेगैगिटेरिट

-4

प्रयत्न

<input type="text" style="text-transform: uppercase">  //uppercase
<input type="text" style="text-transform: lowercase">  //lowercase

डेमो - JSFiddle


7
अच्छा है, लेकिन विशेष रूप से जावास्क्रिप्ट नहीं, नहीं?
कुछ गैर-गैर-

जो कुछ @ गैर-गैर-उपयोगकर्ता-उपयोगकर्ता ने कहा, उसका निर्माण करते हुए, ओपी एक जावास्क्रिप्ट समाधान की तलाश कर रहा है। हालांकि यह उत्तर मान्य है, यह परिभाषित मानकों के अनुसार ओपी के प्रश्न का उत्तर नहीं देता है।
बॉक्सस्पा

अच्छा ... मैं एक सीएसएस विधि की तलाश कर रहा था और इस पृष्ठ पर आया
अभिषेक नलिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.