2010-05-13 14 views
20

एक जावास्क्रिप्ट विधि पर विचार करें जिसे यह जांचने की आवश्यकता है कि कोई दिया गया स्ट्रिंग सभी अपरकेस अक्षरों में है या नहीं। इनपुट स्ट्रिंग लोगों के नाम हैं।जावास्क्रिप्ट - एक स्ट्रिंग में किसी भी लोअरकेस अक्षरों की जांच

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

var check1 = "Jack Spratt";  
var check2 = "BARBARA FOO-BAR"; 
var check3 = "JASON D'WIDGET"; 

var isUpper1 = HasLowercaseCharacters(check1); 
var isUpper2 = HasLowercaseCharacters(check2); 
var isUpper3 = HasLowercaseCharacters(check3); 

function HasLowercaseCharacters(string input) 
{ 
    //pattern for finding whether any lowercase alpha characters exist 
    var allLowercase; 

    return allLowercase.test(input); 
} 

क्या रेगेक्स यहां जाने का सबसे अच्छा तरीका है?

यह निर्धारित करने के लिए आप किस पैटर्न का उपयोग करेंगे कि स्ट्रिंग में कोई कम केस अल्फा वर्ण है या नहीं?

+0

बस एक-Z करने के लिए रेगुलर एक्सप्रेशन से मेल। उदाहरण के लिए नहीं? –

उत्तर

21

भी:

function hasLowerCase(str) { 
    return (/[a-z]/.test(str)); 
} 
+13

है तो यह एक बहुत ही अंग्रेजी-केंद्रित दृश्य है जो लोअरकेस अक्षर है। क्या "ए" कम मामला नहीं है? इस जवाब को स्वीकार करने के बाद मैं इस बारे में बहुत लंबा उल्लेख कर रहा हूं क्योंकि इस प्रश्न का संदर्भ [इस नए प्रश्न] (http://stackoverflow.com/questions/3816905) द्वारा किया गया है। नीचे '! = ToUpperCase' उत्तर अधिक समावेशी है। –

+0

यह लोअरकेस के लिए काम नहीं करेगा, आपको 'अपरिभाषित' के लिए भी जांच करनी होगी। ' फ़ंक्शन में लोअरकेस (str) { वापसी स्ट्र? (/[a-z]/.test(str)): झूठा; } ' – parsh

52
function hasLowerCase(str) { 
    return str.toUpperCase() != str; 
} 

alert(hasLowerCase("HeLLO")); 
alert(hasLowerCase("HELLO")); 

यह प्रयास करें: http://jsfiddle.net/B2bvY/3/

+0

यह वास्तव में स्वीकार्य उत्तर होना चाहिए। बहुत चालाक महोदय – perry

+0

लानत! वास्तव में बहुत चालाक है। बहुत बहुत धन्यवाद। – WilomGfx

+0

ग्रेट समाधान। इस तरह के दृष्टिकोण देख प्यार। – lux

5
function hasLowerCase(str) { 
    return str.toUpperCase() != str; 
} 

या

function hasLowerCase(str) { 
    for(x=0;x<str.length;x++) 
     if(str.charAt(x) >= 'a' && str.charAt(x) <= 'z') 
      return true; 
    return false; 
} 
+0

सौंदर्य! धन्यवाद। –

+0

दूसरा व्यक्ति किसी भी भाषा के साथ काम करता है जिसमें डायक्रिटिक्स या विशेष वर्ण नहीं होते हैं, यही कारण है कि पहला व्यक्ति पसंद किया जाता है। – WilomGfx

0

लेकिन जो संदर्भ आप अपनी स्क्रिप्ट का उपयोग कर रहे हैं? क्या आप केवल उपयोगकर्ता इनपुट प्रदर्शित कर रहे हैं, जैसे प्रॉम्प्ट()? आप सिर्फ वांछित आउटपुट को मजबूर कर सकते हैं।

var inpt = prompt("Enter your name: ", ""); 
var uc = inpt.charAt(0); 
var lc = inpt.slice(1); 
var str1 = uc.toUpperCase(); 
var str2 = lc.toLowerCase(); 
var str = str1 + str2; 
document.write(str); 

अपने उपयोग के आधार पर यह चयन करने के लिए एक नहीं हो सकता है ... लेकिन यदि तुम सब करने की कोशिश कर रहे हैं प्रदर्शन उपयोगकर्ता इनपुट है इस आसान तरीका आप के लिए काम कर सकता था।

1

एक अन्य समाधान केवल a-z

function nameHere(str) { 
    return str.match(/[a-z]/); 
} 

या

function nameHere(str) { 
     return /[a-z]/g.test(str); 
    } 
संबंधित मुद्दे