একটি স্ট্রিংয়ের কোনও অক্ষর জাভাস্ক্রিপ্ট ব্যবহার করে বড় হাতের বা ছোট হাতের অক্ষর থেকে কীভাবে পরীক্ষা করব?


308

একটি স্ট্রিংয়ের কোনও অক্ষর জাভাস্ক্রিপ্ট ব্যবহার করে বড় হাতের বা ছোট হাতের অক্ষর থেকে কীভাবে পরীক্ষা করব?


3
আমি কি কেবল এই প্রশ্নটি পরিষ্কার করতে পারি - আপনি যদি একটি স্ট্রিংয়ের একটি নির্দিষ্ট অক্ষর উচ্চ বা নিম্ন হয় কিনা তা পরীক্ষা করতে চান - বা পুরো স্ট্রিংয়ে বড় হাতের বা ছোট হাতের অক্ষর রয়েছে কিনা তা পরীক্ষা করতে চান। যদি এটি পরে হয় তবে আপনি স্ট্রিংটির সাহায্যে লুপ না করে এবং একবারে একটি করে চিঠি পরীক্ষা না করে কীভাবে ফলাফল পাওয়ার প্রস্তাব করবেন?
জোশ

3
jsperf.com/isupper-compistance/5 সেখানে কয়েকটি ধারণা এবং আপনি গতির জন্য এগুলিও পরীক্ষা করতে পারেন।
ওডিনহো - ভেলমন্ট

2
আইডিয়া # 4 ( [:upper:]) দ্রুত এবং খুব শীতল এটি ছাড়া এটি কার্যকর হয় না, নীচে আমার মন্তব্যটি দেখুন এবং আমার সংশোধিত jsperf.com/isupper-compistance/7 দেখুন
অ্যান্টনি হ্যাচকিন্স

3
str == str.toUpperCase();ফেরৎ সত্য বা মিথ্যা
Jacksonkr

উত্তর:


329

চরিত্র বা পুরো স্ট্রিং সংখ্যাসূচক হলে জোশ এবং মালকির উত্তর উচ্চ এবং নিম্ন উভয় ক্ষেত্রেই সত্য ফিরে আসবে। ফলাফল একটি মিথ্যা ফলাফল তৈরি। উদাহরণস্বরূপ জোশ ব্যবহার করে

var character = '5';
if (character == character.toUpperCase()) {
 alert ('upper case true');
}
if (character == character.toLowerCase()){
 alert ('lower case true');
}

অন্য উপায়টি হ'ল প্রথমে এটি সংখ্যাসূচক হয় কিনা তা পরীক্ষা করা, অন্যথায় এটি বড় এবং ছোট ক্ষেত্রে উদাহরণ হিসাবে পরীক্ষা করে

var strings = 'this iS a TeSt 523 Now!';
var i=0;
var character='';
while (i <= strings.length){
    character = strings.charAt(i);
    if (!isNaN(character * 1)){
        alert('character is numeric');
    }else{
        if (character == character.toUpperCase()) {
            alert ('upper case true');
        }
        if (character == character.toLowerCase()){
            alert ('lower case true');
        }
    }
    i++;
}

20
চরিত্রটি বিরামচিহ্নের মতো অংক বা আলফা জাতীয় কিছু না হলে এখনও আপনার কি একই ভুল ফলাফল হবে না?
লার্শ

6
: @LarsH এই দেখতে stackoverflow.com/questions/1027224/...
ciembor

2
এটি একটি সত্যই পুরানো প্রশ্ন তবে এলোমেলো 'সিএইচ' বর্ণটি কী?
জেএস

1
এই কোডটি সতর্ক করে দেবে যে বিরামচিহ্নগুলি অক্ষরের মতো !হয়।
বর্মার

2
@ জেএস এটি একটি টাইপো, যা বোঝাতে চেয়েছিলvar character='';
বিজেজর


44

অক্ষর যদি বড় হাতের অক্ষর হয় তবে এটি সত্য হবে এবং প্রতিটি ক্ষেত্রে মিথ্যা লগ হবে:

var letters = ['a', 'b', 'c', 'A', 'B', 'C', '(', ')', '+', '-', '~', '*'];

​​​for (var i = 0; i<letters.length; i++) {
    if (letters[i] === letters[i].toUpperCase()
        && letters[i] !== letters[i].toLowerCase()) {
        console.log(letters[i] + ": " + true);
    } else {
        console.log(letters[i] + ": " + false);
    }
}​

আপনি এটি এখানে পরীক্ষা করতে পারেন: http://jsfiddle.net/Axfxz/ (ফায়ারব্যাগ বা sth ব্যবহার করুন)।

​​​for (var i = 0; i<letters.length; i++) {
    if (letters[i] !== letters[i].toUpperCase()
        && letters[i] === letters[i].toLowerCase()) {
        console.log(letters[i] + ": " + true);
    } else {
        console.log(letters[i] + ": " + false);
    }
}​

এবং এটি ছোট হাতের জন্য :)।


1
বিটিডাব্লু, "É", "Ñ" এবং "ñ" এর মতো উচ্চারণযুক্ত অক্ষরগুলির সাথেও কাজ করে।
জাভি

5
দুর্ভাগ্যক্রমে, ছোট হাতের অক্ষর রয়েছে যার বড় হাতের অক্ষর নেই (এবং সম্ভবত এটি অন্যান্য উপায়ও নয়)। জার্মান 'ß' একটি ছোট হাতের অক্ষর, তবে আপনি যদি এটিতে দ্বিতীয় ফাংশনটি প্রয়োগ করেন তবে ফলস্বরূপ এটি একটি মিথ্যা হবে।
jplatte

39

অন্যান্য উত্তরগুলির সাথে সমস্যাটি হ'ল ছোট অক্ষর / বড় হাতের অক্ষরের জন্য পরীক্ষা করা হলে কয়েকটি অক্ষর বা চিহ্নগুলির মতো চিহ্নগুলি সত্য হয়।

আমি এটির জন্য এটি খুব ভালভাবে কাজ করতে পেলাম:

function isLowerCase(str)
{
    return str == str.toLowerCase() && str != str.toUpperCase();
}

এটি বিরামচিহ্ন, সংখ্যা এবং অক্ষরের জন্য কাজ করবে:

assert(isLowerCase("a"))
assert(!isLowerCase("Ü"))
assert(!isLowerCase("4"))
assert(!isLowerCase("_"))

একটি চিঠি পরীক্ষা করতে কেবল এটি ব্যবহার করে কল করুন isLowerCase(str[charIndex])


4
অন্যান্য উত্তর কেন ভোট দেওয়া হয় তা জানেন না। এটিই আমি সমাধান করতে পারি এটিই একমাত্র সমাধান - যুক্তিটি হ'ল "চরিত্রের কি উচ্চতর ও & লোয়ার কেস রূপগুলি রয়েছে? যদি তাই হয় তবে এটি উচ্চতর বা নিম্নতর কিনা তা ফিরিয়ে দিন"
aaaaaa

দুঃখিত তবে এটি আরও তিন বছরের পুরানো উত্তরটির সদৃশ বলে মনে হচ্ছে ।
গৌরাঙ্গ টন্ডন

3
@ গৌরাংট্যান্ডন হ্যাঁ উত্তর দেওয়ার 2 বছর পরে আমি এটিও লক্ষ্য করেছি, তবে আমি আগে লক্ষ্য করিনি কারণ এটি লুপের জন্য আবৃত রয়েছে, কনসোলে কিছু লগইন করেছে এবং সাধারণভাবে পুনরায় ব্যবহারযোগ্য কোড স্নিপেট নয় তাই আমি এবং (এই ভোটের উপর ভিত্তি করে) উত্তর) অন্যান্য অনেক লোক স্বাভাবিকভাবেই উত্তরটি এড়িয়ে যান। সুতরাং আমি মনে করি এটি অন্য উত্তরের বিপরীতে দ্রুত কপি-পেস্ট উত্তর হিসাবে পাওয়া ভাল copy
WebFreak001

একটি অক্ষরের ASCII মান পরীক্ষা করতে কেবল পুরো স্ট্রিংটি রূপান্তর করুন? অযথা।
ইঞ্জিনিয়ার

25
const isUpperCase = (string) => /^[A-Z]*$/.test(string)

তারপরে:

isUpperCase('A') // true
isUpperCase('a') // false

4
এখন পর্যন্ত কোনও উত্তরের উত্তর, দ্রুত, কোনও মেমরি বরাদ্দ না করা, বা ডেটা রূপান্তরকরণ।
মার্টিজন শেফার

20

আপনি একটি নিয়মিত অভিব্যক্তি পরীক্ষা এবং toUpperCaseপদ্ধতিটি ব্যবহার করতে পারেন :

String.prototype.charAtIsUpper = function (atpos){
      var chr = this.charAt(atpos);
      return /[A-Z]|[\u0080-\u024F]/.test(chr) && chr === chr.toUpperCase();
};
// usage (note: character position is zero based)
'hi There'.charAtIsUpper(3);      //=> true
'BLUE CURAÇAO'.charAtIsUpper(9);  //=> true
'Hello, World!'.charAtIsUpper(5); //=> false

আরো দেখুন


2
@ লার্শ: আমি প্রোটোটাইপ পদ্ধতিটি পরিবর্তিত (এবং সরলীকৃত) করেছি। এখন এটিতে ডায়াক্রিটিক্যালস রয়েছে
কোইঙ্ক

1
তুলনা কেন && chr === chr.toUpperCase();??
শিখা_ফিনিক্স

3
@ ফ্লেমে_ফোনিক্স রেঞ্জটিতে \u0080-\u024Fনিম্ন কেস ডায়াক্রিটিক্যালস থাকতে পারে, তাই পরীক্ষার পাশাপাশি অক্ষরটিও পরীক্ষা করা উচিত।
KooiInc

16
function isUpperCase(myString) { 
  return (myString == myString.toUpperCase()); 
} 
function isLowerCase(myString) { 
  return (myString == myString.toLowerCase()); 
} 

1
আমি বিশ্বাস করি কেবলমাত্র এই সমাধানটি কাজ করে যদি স্ট্রিংটি একটি অক্ষর দীর্ঘ হয় এবং সেই চরিত্রটি আগ্রহের চরিত্র ... তবে এই পদ্ধতিগুলির মধ্যে
কোনওটি

3
@ জ্যাকজাপ - ভুল। এগুলি পুরো স্ট্রিংকে রূপান্তর করবে (এবং তারপরে পরীক্ষা করবে)।
স্ক্যানলিফ

3
মন্তব্যগুলিতে +1 - এই উত্তরটি কিছুটা বন্ধ, মূল প্রশ্নের বিষয়ে, যা একটি স্ট্রিংয়ের (একটি পুরো স্ট্রিং নয়) একটি চিঠি সম্পর্কে জিজ্ঞাসা করেছিল
বেলুগাবোব

2
কড়া সমতা চেক করতে ভুলবেন না! === এফটিডব্লিউ!
জেমস

1
@ সমস্ত - সঠিক এটি কেবল একটি পুরো স্ট্রিংয়ের বিরুদ্ধে পরীক্ষা করবে - আপনি প্রতিটিটির পরীক্ষার জন্য একটি স্ট্রিংয়ের মধ্যে অক্ষরগুলি দিয়ে লুপ করতে পারেন।
জোশ

10

আরও বিশেষভাবে যা জিজ্ঞাসা করা হচ্ছে তা সম্পর্কে। একটি স্ট্রিং এবং চেক করার জন্য একটি অবস্থান পাস। জোশের খুব কাছাকাছি ব্যতীত এটি একটি আরও বড় স্ট্রিংটির তুলনা করবে। একটি মন্তব্য হিসাবে যোগ করতে হবে কিন্তু আমার এখনও সেই ক্ষমতা নেই।

function isUpperCase(myString, pos) { 
    return (myString.charAt(pos) == myString.charAt(pos).toUpperCase()); 
}   

function isLowerCase(myString, pos) {
    return (myString.charAt(pos) == myString.charAt(pos).toLowerCase()); 
}

=== সেরা অনুশীলনের জন্য
РАВИ

8

আপনি বড় আকারের রোমান বর্ণমালা বর্ণগুলি স্পষ্টভাবে সনাক্ত করতে একটি নিয়মিত প্রকাশও ব্যবহার করতে পারেন।

isUpperCase = function(char) {
  return !!/[A-Z]/.exec(char[0]);
};

সম্পাদনা করুন: উপরের ফাংশনটি ASCII / বেসিক ল্যাটিন ইউনিকোডের জন্য সঠিক, যা সম্ভবত আপনি যত্ন নেবেন। নিম্নলিখিত সংস্করণটি লাতিন -১ পরিপূরক এবং গ্রীক এবং কপটিক ইউনিকোড ব্লককেও সমর্থন করে ... যদি কোনও কারণে আপনার প্রয়োজন হয়।

isUpperCase = function(char) {
  return !!/[A-ZÀ-ÖØ-ÞΆΈ-ΏΑ-ΫϢϤϦϨϪϬϮϴϷϹϺϽ-Ͽ]/.exec(char[0]);
};

আপনার যদি আরও সমর্থন (down বড় হাতের?) দরকার হয় তবে এই কৌশলটি নীচে পড়তে শুরু করে যেহেতু কিছু ব্লক উচ্চ এবং ছোট হাতের অক্ষরকে আন্তঃসংযোগ করে।


@ রবার্টরিজ সত্যিই? এটি রোমানহীন অক্ষরের জন্য কাজ করে না।
বর্মার

এটিতে অনেক লোকেল অক্ষর নেই, উদাহরণস্বরূপ পোলিশ। এই কারণে সমাধানটি যে তুলনায় তুলনামূলক ব্যবহার করে .toLowerCase()বা .toUpperCase()পছন্দ করা হয়, কারণ তারা বেশিরভাগ লোকালকে অভ্যন্তরীণভাবে সমর্থন করে।
ক্রেভিটজ

7

এই প্রশ্নের উত্তরের উত্তরটি সংক্ষিপ্ত হওয়া উচিত, ইউনিকোডটি সঠিকভাবে পরিচালনা করতে হবে এবং খালি স্ট্রিং এবং নালগুলি মোকাবেলা করতে হবে।

function isUpperCase(c) {
    return !!c && c != c.toLocaleLowerCase();
}

এই পদ্ধতির প্রথমে খালি স্ট্রিং এবং নালগুলি নিয়ে কাজ করে, তারপরে নিশ্চিত করা হয় যে প্রদত্ত স্ট্রিংটিকে ছোট ক্ষেত্রে রূপান্তরিত করে তার সমতা পরিবর্তন করে। এটি নিশ্চিত করে যে স্ট্রিংটিতে কমপক্ষে একটি মূল অক্ষর রয়েছে স্থানীয় স্থানীয় মূলধন বিধি অনুসারে (এবং সংখ্যার জন্য এবং অন্য গ্লাইফগুলির ক্ষেত্রে মিথ্যা ধনাত্মক প্রত্যাবর্তন করবে না) যার মূলধন নেই।

মূল প্রশ্নটি প্রথম চরিত্রটি পরীক্ষা করার বিষয়ে বিশেষভাবে জিজ্ঞাসা করেছিল। আপনার কোডটি সহজ এবং পরিষ্কার রাখার জন্য আমি প্রথম অক্ষরটিকে স্ট্রিং থেকে আলাদা করে আলাদা করে দেব এটি উচ্চতর ক্ষেত্রে কিনা তা পরীক্ষা করা থেকে আলাদা করে।


5

সত্যিই একটি সহজ উত্তর আছে, যা অন্য কেউ উল্লেখ করেনি:

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

যদি str.toUpperCase()একইরূপ না ফেরায় তবে strএটি নিম্নতর হতে হবে। উচ্চতর ক্ষেত্রে পরীক্ষা করার জন্য আপনি এটিকে পরিবর্তন করুনstr !== str.toLowererCase()

কিছু অন্যান্য উত্তরের বিপরীতে, এটি নন-আলফা অক্ষরগুলির (রিটার্ন false) উপর সঠিকভাবে কাজ করে এবং এটি অন্যান্য বর্ণমালা, উচ্চারণযুক্ত অক্ষর ইত্যাদির জন্য কাজ করে


আমি এই আবিষ্কারটি নিয়ে বড়াই করতে যাচ্ছিলাম তবে আপনি প্রথম ছিলেন। প্রথম অক্ষরটি বড় হাতের অক্ষর এবং একবারে একটি চিঠি কিনা তা সনাক্ত করা কার্যকর
পাভেল

আর্থার ভ্যান আ্যাকারের উত্তর পছন্দ করুন: পুরো স্ট্রিংকে বড় হাতের মধ্যে রূপান্তর করে সিপিইউ নষ্ট করার দরকার নেই , কেবল একটি অক্ষর আপার কেস কিনা তা পরীক্ষা করতে । আপনি কেবল সেই অক্ষরটিতে একটি ASCII ব্যাপ্তি পরীক্ষা করতে পারেন। রূপান্তর কাজ করে, নিশ্চিত, তবে এটি অলস কোডিং।
ইঞ্জিনিয়ার

@ ইঞ্জিনিয়ার, তবে অ্যাকারের উত্তর ভুল "É", লোয়ার কেস নয়।
জেমস


4

সবচেয়ে ভাল উপায় হ'ল নিয়মিত এক্সপ্রেশন, একটি টের্নারি অপারেটর এবং .test()স্ট্রিংয়ের জন্য অন্তর্নির্মিত পদ্ধতি ব্যবহার করা।

আমি আপনাকে নিয়মিত প্রকাশের ইনস এবং আউটস এবং স্ট্রিংগুলির পরীক্ষার পদ্ধতি (এগুলি খুঁজে পাওয়া সহজ) তবে আপনাকে এখানে আপনার ভেরিয়েবলটি পরীক্ষা করতে আমরা এটি ব্যবহার করব।

/[a-z]/i.test(your-character-here)

আপনার অক্ষরটি নিয়মিত অভিব্যক্তিতে সেট করা অক্ষরের সাথে মেলে কিনা তার ভিত্তিতে এটি FALSE এর সত্য ফেরত দেবে। আমাদের নিয়মিত অভিব্যক্তি পতাকা সকল /[a-z]/ক্ষেত্রেই তাদের অক্ষরকে বিবেচনা না করেই সমস্ত অক্ষরের জন্য পরীক্ষা করে i

সুতরাং, একটি প্রাথমিক পরীক্ষা হবে:

var theAnswer = "";
if (/[a-z]/i.test(your-character-here)) {
  theAnswer = "It's a letter."
}

এখন আমাদের এটি নির্ধারণ করতে হবে এটি উচ্চতর বা ছোট ক্ষেত্রে আছে কিনা। সুতরাং, আমরা যদি iআমাদের নিয়মিত অভিব্যক্তি থেকে পতাকাটি সরিয়ে ফেলি, তবে আমাদের উপরের কোডটি ছোট হাতের অক্ষরের জন্য পরীক্ষা করবে অজ। এবং যদি আমরা আমাদের প্রথম ifবিবৃতিতে অন্য বিবৃতি আটকে থাকিelseif বিবৃতিতে এজেড ব্যবহার করেও বড় হাতের অক্ষরের জন্য পরীক্ষা করতে পারি। এটার মত:

var theAnswer = "";
if (/[a-z]/.test(your-character-here)) {
  theAnswer = "It's a lower case letter."
} else if (/[A-Z]/.test(your-character-here)) {
  theAnswer = "It's an upper case letter.";
}

এবং কেবল যদি এটি কোনও চিঠি না হয় তবে আমরা একটি চূড়ান্ত অন্য বিবৃতি যুক্ত করতে পারি:

var theAnswer = "";
if (/[a-z]/.test(your-character-here)) {
  theAnswer = "It's a lower case letter."
} else if (/[A-Z]/.test(your-character-here)) {
  theAnswer = "It's an upper case letter.";
} else {
  theAnswer = "It's not a letter."
}

উপরের কোডটি কাজ করবে। তবে এটা কুৎসিত। পরিবর্তে, আমরা if-elseউপরে আমাদের বিবৃতি প্রতিস্থাপন করতে একটি "টের্নারি অপারেটর" ব্যবহার করতে পারি । টেরিনারি অপারেটরগুলি কোডিংয়ের সহজ শর্টহ্যান্ড সহজ উপায় if-else। বাক্য গঠন সহজ:

(statement-to-be-evaluated) ? (code-if-true) : (code-if-false)

এবং এগুলি একে অপরের মধ্যেও বাসা বাঁধতে পারে। সুতরাং একটি ফাংশন দেখতে পারে:

var theAnswer = "";
function whichCase(theLetter) {
  theAnswer = /[a-z]/.test(theLetter) ? "It's lower case." : "";
  theAnswer = /[A-Z]/.test(theLetter) ? "It's upper case." : "";
  return(theAnswer);
}

উপরের কোডটি দেখতে ভাল লাগছে, তবে বেশ কার্যকর হবে না, কারণ যদি আমাদের চরিত্রটি ছোট আকারের হয়, theAnswer হাতের হয় তবে বড় হাতের জন্য পরীক্ষা করার সময় এটি সেট হয়ে যায়, সুতরাং সেগুলি বাসা দেয়:

var theAnswer = "";
function whichCase(theLetter) {
  theAnswer = /[a-z]/.test(theLetter) ? "It's lower case." : (/[A-Z]/.test(theLetter) ? "It's upper case." : "It's not a letter.");
  return(theAnswer);
}

এটা দুর্দান্ত কাজ করবে! তবে ভেরিয়েবলটি সেট করার জন্য theAnswerএবং তারপরে ফিরে আসার জন্য দুটি পৃথক রেখা থাকার প্রয়োজন নেই । এবং আমাদের ব্যবহার করা উচিত letএবং এর constপরিবর্তে var(যদি আপনি কেন নিশ্চিত হন না তবে সেগুলি সন্ধান করুন)। একবার আমরা এই পরিবর্তনগুলি করি:

function whichCase(theLetter) {
  return(/[A-Z]/.test(theLetter) ? "It's upper case." : (/[a-z]/.test(theLetter) ? "It's lower case." : "It's not a letter.")); 
}

এবং আমরা একটি মার্জিত, সংক্ষিপ্ত কোডের টুকরা দিয়ে শেষ করি। ;)


3

এটি একটি সহজ রেগেক্স ব্যবহার করে সোজা, পঠনযোগ্য সমাধান।

// Get specific char in string
const char = string.charAt(index);

const isLowerCaseLetter = (/[a-z]/.test(char));
const isUpperCaseLetter = (/[A-Z]/.test(char));

2

আপনার অ্যারেটিতে ম্যাচ পদ্ধতি এবং রেজেক্স ব্যবহার করে যদি উচ্চতর কেস বা লোয়ার কেস স্ট্রিং থাকে তবে আপনি পরীক্ষা করতে পারেন, নীচে আপনার পরীক্ষা শুরু করার জন্য কেবল একটি প্রাথমিক ভিত্তি রয়েছে

  var array = ['a', 'b', 'c', 'A', 'B', 'C', '(', ')', '+', '-', '~', '*'];
  var character = array.join('')
      console.log(character)

  var test = function(search){
      upperCase = search.match(/[A-Z]/g)
      console.log(upperCase)

      lowerCase = search.match(/[a-z]/g)
      console.log(lowerCase)
   }

   test(character)

2

আপনি এটি ব্যবহার করতে পারেন, এটি নিম্ন এবং বড় হাতের স্ট্রিং পরীক্ষা করবে

var s = "a"
if(/[a-z]/.test(s)){
  alert ('lower case true');
}

if(/[A-Z]/.test(s)) {
 alert ('upper case true'); 
}

এই উত্তরটি কীভাবে বর্তমান সমস্যার সমাধান করতে ওপিকে সহায়তা করে তার উত্তরের সাথে কিছু ব্যাখ্যা যুক্ত করুন
19 কে

2

এটি কেবল প্রথম অক্ষর নয়, পুরো স্ট্রিংটি পরীক্ষা করে। আমি ভেবেছিলাম এটি এখানে সবার সাথে ভাগ করে নেব।

এখানে একটি ফাংশন যা কোনও স্ট্রিংয়ের অক্ষরের বিরুদ্ধে পরীক্ষা করতে নিয়মিত অভিব্যক্তি ব্যবহার করে; চিঠিটি বড় হাতের (AZ) হলে এটি সত্য হয় returns তারপরে আমরা সত্য / মিথ্যা অ্যারে একক মানকে হ্রাস করি। যদি এটি স্ট্রিংয়ের দৈর্ঘ্যের সমান হয়, তার মানে হ'ল সমস্ত বর্ণগুলি রেজেক্স পরীক্ষায় উত্তীর্ণ হয়েছিল, যার অর্থ স্ট্রিংটি বড় হাতের অক্ষর। যদি তা না হয় তবে স্ট্রিংটি ছোট হাতের অক্ষরে থাকে।

const isUpperCase = (str) => {
  let result = str
    .split('')
    .map(letter => /[A-Z]/.test(letter))
    .reduce((a, b) => a + b);

  return result === str.length;
}

console.log(isUpperCase('123')); // false
console.log('123' === '123'.toUpperCase()); // true

1

আমি সম্প্রতি এটি করেছিলাম:

1) পরীক্ষা করুন যে কোনও চর / স্ট্রিং sলোয়ারকেস

s.toLowerCase() == s && s.toUpperCase() != s

2) চেক sবড় হাতের নাগালে হয়

s.toUpperCase() == s && s.toLowerCase() != s

বর্ণহীন sঅক্ষর এবং ডায়াক্রিটিক্স রয়েছে এমন কেসগুলি কভার করে ।


1
function checkCharType (charToCheck) {
    // body... 
    var returnValue = "O";
    var charCode = charToCheck.charCodeAt(0);

    if(charCode >= "A".charCodeAt(0) && charCode <= "Z".charCodeAt(0)){

        returnValue = "U";

    }else if (charCode >= "a".charCodeAt(0) &&
                charCode <= "z".charCodeAt(0) ){
        returnValue = "L";
    }else if (charCode >= "0".charCodeAt(0) &&
            charCode <= "9".charCodeAt(0)  ) {
        returnValue = "N";
    }
    return returnValue;
}

var myString = prompt("Enter Some text: ", "Hello world !");

switch (checkCharType(myString)) {
    case "U":
        // statements_1
        document.write("First character was upper case");
        break;

    case "L":
        document.write("First character was a lower case");
        break;
    case "N":
        document.write("First character was a number");
        break
    default:
        // statements_def
        document.write("First character was not a character or a number");
        break;
}
  1. একটি ফাংশন চেকচার্ট টাইপ () সংজ্ঞায়িত করুন। পরিবর্তনশীল রিটার্নভ্যালু ঘোষণা করে এবং এটির অন্য কোনও মান নির্দেশ করার জন্য "O" অক্ষর দিয়ে এটি সূচনা করে।

  2. বড় হাতের জন্য ইউ; ছোট হাতের জন্য এল; সংখ্যার জন্য এন

  3. প্রথম অক্ষরের অক্ষর কোড পেতে CharCodeAt () পদ্ধতিটি ব্যবহার করুন।

  4. বিবৃতি ব্যবহার করে যা অক্ষর কোডটি কতগুলি মানের মানের মধ্যে রয়েছে তা যাচাই করে।

  5. যদি এটি A এবং Z, এর বড় হাতের অক্ষর, a এবং z এর মধ্যে অক্ষর কোড, এর ছোট হাতের মধ্যে পড়ে Its ইত্যাদি।

  6. "একটি" .charCode (0)

    var myChar = নতুন স্ট্রিং ("এ"); myChar.charCodeAt (0); "এ": নম্বর কোড "65"

  7. স্ট্রিং পরীক্ষা করুন

1

এই প্রশ্নের বেশ কয়েকবার স্পষ্টভাবে উত্তর দেওয়া হয়েছে, তবে আমি ভেবেছিলাম যে আমি আমার সমাধানটি ভাগ করে নেব কারণ আমি প্রদত্ত উত্তরে এটি দেখিনি।

var lower_case = function(letter){
    lowers = "abcdefghijklmnopqrstuvwxyz";
    return letter === letter.toLowerCase() && lowers.indexOf(letter) >= 0
};

var upper_case = function(letter){
    uppers = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    return letter === letter.toUpperCase() && uppers.indexOf(letter) >= 0
};

2 ¢


1
এর মতো আপনি নিজের 2
put

1

নির্বাচিত উত্তরে আমার মন্তব্য দেখুন। অন্যান্য সমাধান যা ASCII টেবিলের সীমাবদ্ধ বা প্রকৃত চরিত্রের অক্ষরগুলি ব্যবহার করে ইউনিকোড এবং সেখানে উপস্থিত কয়েক'শ অন্যান্য অক্ষরকে সম্পূর্ণ উপেক্ষা করে।

এই কোডটি কেসগ্রুপ ভেরিয়েবলকে এতে সেট করবে:

  • আপার কেস এর জন্য 1
  • লোয়ার কেসের জন্য -1
  • 0 কেস উইন্ড কেস এর জন্য

    var caseGroup = (character.toLowerCase() == character.toUpperCase() ? 0 : (character == character.toUpperCase() ? 1 : -1));

আপনি এটিকে এমন কিছুতে বেক করতে পারেন ...

    function determineCase(character) {
        return (character.toLowerCase() == character.toUpperCase() ? 0 : (character == character.toUpperCase() ? 1 : -1));
    }

    function isUpper(character) {
        return determineCase(character) == 1;
    }

    function isLower(character) {
        return determineCase(character) == -1;
    }

    function hasCase(character) {
        return determineCase(character) != 0;
    }

1
function checkCase(c){
    var u = c.toUpperCase();
    return (c.toLowerCase() === u ? -1 : (c === u ? 1 : 0));
};

মূল উত্তরে সোনিক দাড়ি মন্তব্যের উপর ভিত্তি করে। আমি ফলাফলটিতে যুক্তি পরিবর্তন করেছি:

  • 0: লোয়ারকেস

  • 1: বড় হাতের বাচ্চা

  • -1: না


1

আরেকটি উপায় হ'ল চরিত্রটিকে একটি খালি বস্তুর সাথে তুলনা করা, আমি জানি না এটি কেন কাজ করে, তবে এটি কাজ করে:

for (let i = 1; i <= 26; i++) {
   const letter = (i + 9).toString(36).toUpperCase();
   console.log('letter', letter, 'is upper', letter<{}); // returns true
}
for (let i = 1; i <= 26; i++) {
   const letter = (i + 9).toString(36);
   console.log('letter', letter, 'is upper', letter<{}); // returns false
}

সুতরাং একটি ফাংশন:

function charIsUpper(character) {
   return character<{};
}

সম্পাদনা করুন : এটি অ্যাকসেন্ট এবং ডায়াক্রিটিক্সের সাথে কাজ করে না, সুতরাং এটি অপসারণ করা সম্ভব

function charIsUpper(character) {
   return character
           .normalize('NFD')
           .replace(/[\u0300-\u036f]/g, '')<{};
}

1
এটি কাজ করে কারণ কোনও বস্তুর স্ট্রিং প্রতিনিধিত্ব [object Object]। আপনি চিঠিটির অক্ষর কোডটি আগে আসে কিনা তা আপনি মূলত যাচাই করে দেখছেন [। চরিত্র কোড যেহেতু Z, [, aহয় 90, 91, 97যথাক্রমে তুলনা বড়হাতের অক্ষর জন্য truthy এবং ছোট হাতের অক্ষর জন্য falsy হয়। অন্য কথায়, এটি বর্ণমালার অক্ষর পেতে বেস-base 36 সংখ্যা ব্যবহার করে এটি করার একটি সমান হ্যাকি উপায়।
র‌্যাডফ্লার

@ অ্যাড্রেফুলার ইন্টারেস্টেটিং জিনিসটি, আমি ভেবেছিলাম এটি এমন কিছু ছিল তবে সঠিক উত্তর আমার কাছে নেই, কার্যকরীভাবে এই পদ্ধতিটি বড় হাতের অক্ষরের সাথে কাজ করে না তবে এরকম কিছু দিয়ে অসন্তুষ্ট হওয়া সম্ভব:character.normalize("NFD").replace(/[\u0300-\u036f]/g
জুলিয়েন মেট্রাল

0

কমপক্ষে একটি ছোট হাতের অক্ষর উপস্থিত থাকলে একটি স্ট্রিং কেবল সমস্ত বড় হাতের না বলে বিবেচিত হয় , এটি ঠিক আছে works আমি বুঝতে পেরেছি যে এটি সংক্ষিপ্ত এবং সংক্ষিপ্ত নয় অন্য সবার মতো করার চেষ্টা করেছে, তবে এটি কার্যকর হয় =)

function isUpperCase(str) {
    for (var i = 0, len = str.length; i < len; i++) {
        var letter = str.charAt(i);
        var keyCode = letter.charCodeAt(i);
        if (keyCode > 96 && keyCode < 123) {
            return false;
        }
    }

    return true;
}

0

আমি যেটি ব্যবহার করি (লক্ষ্য করুন এটি "টেস্টস্ট্রিং" কে "টি ইস্ট স্ট্রিং" বা "টেস্ট স্ট্রিং" হিসাবে তৈরি করে না)।

function seperateCapitalised(capitalisedString) {
    if (typeof capitalisedString !== "string" || capitalisedString.length === 0)
        return capitalisedString;

    var newStr = capitalisedString[0];
    for (var i = 1; i < capitalisedString.length; i++) {
        var char = capitalisedString[i];

        if (char === char.toUpperCase() && isNaN(char)) {
            newStr += ' ' + char;
        }
        else {
            newStr += char;
        }
    }
    return newStr;
}

0

আমার যে কোনও অক্ষরের স্ট্রিং (সাদা স্থান, চিহ্ন, সংখ্যা, ইউনিকোড অক্ষর সহ) পরীক্ষা করা দরকার। কারণ সাদা স্থান, সংখ্যা, চিহ্ন ... বড় হাতের এবং ছোট উভয় ক্ষেত্রে একই হবে এবং আমি আসল বড় অক্ষরের সন্ধান করতে চাই, আমি এটি করি:

let countUpperCase = 0;
let i = 0;
while (i <= string.length) {
  const character = string.charAt(i);
  if (character === character.toUpperCase() && character !== character.toLowerCase()) {
    countUpperCase++;
  }
  i++;
}

0

কেবলমাত্র ASCII মানটি পরীক্ষা করুন

// IsLower verify that a string does not contains upper char
func IsLower(str string) bool {
    for i := range str {
        ascii := int(str[i])
        if ascii < 91 && ascii > 64 {
            return false
        }
    }
    return true
}

0

স্টিফেন নেলসনের ফাংশন প্রচুর পরীক্ষার উদাহরণ সহ একটি প্রোটোটাইপে রূপান্তরিত।

আমি সম্পূর্ণতার জন্য ফাংশনটিতে পুরো স্ট্রিং যুক্ত করেছি।

অতিরিক্ত মন্তব্যের জন্য কোড দেখুন।

/* Please note, there's no requirement to trim any leading or trailing white
spaces. This will remove any digits in the whole string example returning the
correct result. */

String.prototype.isUpperCase = function(arg) {
var re = new RegExp('\\s*\\d+\\s*', 'g');
if (arg.wholeString) {return this.replace(re, '') == this.replace(re, '').toUpperCase()} else
return !!this && this != this.toLocaleLowerCase();
}

console.log('\r\nString.prototype.isUpperCase, whole string examples');
console.log(' DDD is ' + ' DDD'.isUpperCase( { wholeString:true } ));
console.log('9 is ' + '9'.isUpperCase( { wholeString:true } ));
console.log('Aa is ' + 'Aa'.isUpperCase( { wholeString:true } ));
console.log('DDD 9 is ' + 'DDD 9'.isUpperCase( { wholeString:true } ));
console.log('DDD is ' + 'DDD'.isUpperCase( { wholeString:true } ));
console.log('Dll is ' + 'Dll'.isUpperCase( { wholeString:true } ));
console.log('ll is ' + 'll'.isUpperCase( { wholeString:true } ));

console.log('\r\nString.prototype.isUpperCase, non-whole string examples, will only string on a .charAt(n) basis. Defaults to the first character');
console.log(' DDD is ' + ' DDD'.isUpperCase( { wholeString:false } ));
console.log('9 is ' + '9'.isUpperCase( { wholeString:false } ));
console.log('Aa is ' + 'Aa'.isUpperCase( { wholeString:false } ));
console.log('DDD 9 is ' + 'DDD 9'.isUpperCase( { wholeString:false } ));
console.log('DDD is ' + 'DDD'.isUpperCase( { wholeString:false } ));
console.log('Dll is ' + 'Dll'.isUpperCase( { wholeString:false } ));
console.log('ll is ' + 'll'.isUpperCase( { wholeString:false } ));

console.log('\r\nString.prototype.isUpperCase, single character examples');
console.log('BLUE CURAÇAO'.charAt(9) + ' is ' + 'BLUE CURAÇAO'.charAt(9).isUpperCase( { wholeString:false } ));
console.log('9 is ' + '9'.isUpperCase( { wholeString:false } ));
console.log('_ is ' + '_'.isUpperCase( { wholeString:false } ));
console.log('A is ' + 'A'.isUpperCase( { wholeString:false } ));
console.log('d is ' + 'd'.isUpperCase( { wholeString:false } ));
console.log('E is ' + 'E'.isUpperCase( { wholeString:false } ));
console.log('À is ' + 'À'.isUpperCase( { wholeString:false } ));
console.log('É is ' + 'É'.isUpperCase( { wholeString:false } ));
console.log('Ñ is ' + 'Ñ'.isUpperCase( { wholeString:false } ));
console.log('ñ is ' + 'ñ'.isUpperCase( { wholeString:false } ));
console.log('Þ is ' + 'Þ'.isUpperCase( { wholeString:false } ));
console.log('Ͻ is ' + 'Ͻ'.isUpperCase( { wholeString:false } ));
console.log('Ͽ is ' + 'Ͽ'.isUpperCase( { wholeString:false } ));
console.log('Ά is ' + 'Ά'.isUpperCase( { wholeString:false } ));
console.log('Έ is ' + 'Έ'.isUpperCase( { wholeString:false } ));
console.log('ϴ is ' + 'ϴ'.isUpperCase( { wholeString:false } ));
console.log('Ϋ is ' + 'Ϋ'.isUpperCase( { wholeString:false } ));
console.log('Ϣ is ' + 'Ϣ'.isUpperCase( { wholeString:false } ));
console.log('Ϥ is ' + 'Ϥ'.isUpperCase( { wholeString:false } ));
console.log('Ϧ is ' + 'Ϧ'.isUpperCase( { wholeString:false } ));
console.log('Ϩ is ' + 'Ϩ'.isUpperCase( { wholeString:false } ));
console.log('Ϫ is ' + 'Ϫ'.isUpperCase( { wholeString:false } ));
console.log('Ϭ is ' + 'Ϭ'.isUpperCase( { wholeString:false } ));
console.log('Ϯ is ' + 'Ϯ'.isUpperCase( { wholeString:false } ));
console.log('Ϲ is ' + 'Ϲ'.isUpperCase( { wholeString:false } ));
console.log('Ϸ is ' + 'Ϸ'.isUpperCase( { wholeString:false } ));
console.log('Ϻ is ' + 'Ϻ'.isUpperCase( { wholeString:false } ));


0
isUpperCaseCharExists = function(str){
    for(var i = 0; i < str.length; i++){
        var character = str.charAt(i);
        if(isNaN(character)){ // if number ignore
            var upCharacter = character.toUpperCase();
            var lowCharacter = character.toLowerCase();

            if(upCharacter != lowCharacter){ // if special char ignore
                if(character == upCharacter){
                    return true;
                }
            }
        }
    }

    return false;
}

-1
<script type="text/javascript">
function check(){
    var str="AabczZ";
    for(var i=0;i<str.length;i++){
        var char=str.charCodeAt(i);
        if(char>=65 && char<=90){
            // char is in uppercase
        }else if(char>=97 && char<=122){
            // char is in lowercase
        }else{
            // special Char
        }
    }
}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.