চরিত্রটি জাভাস্ক্রিপ্টের কোনও চিঠি কিনা তা কীভাবে পরীক্ষা করবেন?


94

আমি জাভাস্ক্রিপ্ট স্ট্রিংয়ের সাথে একটি চরিত্রটি বের করছি:

var first = str.charAt(0);

এবং আমি এটি একটি চিঠি কিনা তা পরীক্ষা করতে চাই। আশ্চর্যজনকভাবে, জাভাস্ক্রিপ্টে এ জাতীয় কার্যকারিতা বিদ্যমান বলে মনে হয় না। কমপক্ষে আমি এটি খুঁজে পাচ্ছি না।

আমি কীভাবে এটি পরীক্ষা করতে পারি?


4
একটি নম্বর তৈরি এবং বিরুদ্ধে পরীক্ষা NaN? বা শুধু isNan(first)আমার অনুমান।
মার্ক

6
@ মার্ক যদি এই চরিত্রটি '-' উদাহরণস্বরূপ হয়, তবে আপনার পরীক্ষাটি ইঙ্গিত দেয় না যে এটি একটি চিঠি ...
জেরুমে ভার্সেটেঞ্জ

4
"চিঠি" সংজ্ঞায়িত করেন? শুধু ইংলিশ আলফা, না অন্য কিছু? আপনি কি "ব্ল্যাকলিস্ট" বা "শ্বেতলিস্ট" রাখতে চান?
ওয়েসলে মার্চ

4
@ জেভিস্ট্রি সবাই জাভা জানেন না। আপনি কি আমাদের বলতে পারবেন না কোন অক্ষরের অনুমতি দেওয়া হবে?
PeeHaa

4
আমি এখানে অনেক লোককে জেএস জাভা কল করে দেখছি। জেএস এবং জাভা একই জিনিস নয়, এমনকি কাছাকাছিও নয়। একটি মূলত একটি খেলনা, অন্যটি ওয়েবসাইট তৈরির জন্য।
আয়ান ওয়াইজ

উত্তর:


15

আমি বিশ্বাস করি যে এই প্লাগইনটিতে আপনার সক্ষমতা রয়েছে: http://xregexp.com/plugins/ (গিথুব লিঙ্ক: https://github.com/slevithan/xregexp )

এটির সাহায্যে আপনি সহজেই এর সাথে সমস্ত ইউনিকোড অক্ষর মেলাতে পারেন \p{L}

এই উৎস ফাইলের হেডার পড়ুন যা আরও এটি সমর্থন দেখতে: http://xregexp.com/plugins/xregexp-unicode-categories.js


4
আপনি যে প্রকল্পগুলিতে কাজ করেছেন সেগুলিতে এই প্লাগইনটি ব্যবহার করার অভিজ্ঞতা পেয়েছেন? (কেবলমাত্র এই গ্রন্থাগারটি কতটা নির্ভরযোগ্য তা ভাবছেন)
অ্যাড্রিয়েন

এটিকে হ্রাস করা অবশ্যই 2019 এর জন্য একটি খারাপ উত্তর
পিটার

4
@ পিটার আপনি যে উত্তরটি 2019 এর জন্য উপযুক্ত বলে মনে করেন তা লিঙ্ক করতে পারেন? যতক্ষণ না অন্য সমাধানটি সমস্ত ইউনিকোড অক্ষরগুলির সাথে কাজ করে ততক্ষণ আমি আমার উত্তরের সম্পাদনা হিসাবে এর সাথে একটি লিঙ্ক যুক্ত করব।
বেজম্যাক্স 5'19

146

আমি বিশ্বাস করি না যে এর জন্য একটি অন্তর্নির্মিত কার্য রয়েছে। তবে এটি একটি রেজেক্স দিয়ে লিখতে যথেষ্ট সহজ

function isLetter(str) {
  return str.length === 1 && str.match(/[a-z]/i);
}

50
কোডটি কেবলমাত্র টেস্ট করে যে অক্ষরটি একটি থেকে z এর মূল চিঠিগুলির মধ্যে একটি কিনা (খুব কম ভাষা কেবল সেই বর্ণগুলি ব্যবহার করে লেখা হয়)। এটি জাভা ফাংশনটির থেকে উল্লেখযোগ্য ছিল from
জুলকা কে। করপেলা

11
আপনি এখনও একটি রেইজেক্স ব্যবহার করতে পারেন এবং আপনার প্রয়োজন হিসাবে আরও বিশদ যুক্ত করতে পারেন: str.match (/ [AZ | az | ü | é] / i); // ইত্যাদি
এলি

এটা কি কাজ? var char=str.toLowerCase(); return (char.length==1 && char>='a' && char<='z')
ইয়েবো ইয়াং

4
@ ইয়োব্যাং - না, উপরে জেসবিন লিঙ্কে গিয়ে আপনার নিজের কাছে পরিবর্তন করে এটি চালিয়ে গিয়েছে এবং এটি পেয়েছে: "হ'ল 'তুমি' একটি চিঠি? সত্য" "হ'ল 'ü' একটি চিঠি? মিথ্যা" "'' 'একটি চিঠি? মিথ্যা "আপনার কোড সহ।
জুলিক্স

4
এটি লক্ষ করা উচিত যে এটি আসলে সত্য হয় না এক হিসাবে প্রত্যাশা হিসাবে মিথ্যা। যদি strঅ্যাজ থেকে মান হয় তবে এটির মানটি ফিরে আসে। অন্যথায় এটি শূন্য ফিরে আসে। আপনার যদি প্রয়োজন হয় সত্য / মিথ্যা ফেরত এটি ব্যবহার করুন। isLetter: function (str) { if (str.length !== 1 && str.match(/[a-z]/i)) { return true; } return false; },
রেজিস

107

এই বিশেষ চরিত্রগুলিকে যেমন সাধারণ চেকগুলি যেমন বিবেচনায় নেওয়া হয় নি সেই /[a-zA-Z]/.test(c)ক্ষেত্রে ECMAScript কেস ট্রান্সফর্মেশন ( toUpperCase) উত্তোলন করা উপকারী হতে পারে । এটি কিছু বিদেশী বর্ণমালার নন-এএসসিআইআই ইউনিকোড অক্ষর শ্রেণিতে বিবেচনা করবে।

function isLetter(c) {
  return c.toLowerCase() != c.toUpperCase();
}

দ্রষ্টব্য: এই সমাধানটি কেবলমাত্র বেশিরভাগ লাতিন, গ্রীক, আর্মেনীয় এবং সিরিলিক স্ক্রিপ্টগুলির জন্য কাজ করবে। এটি চীনা, জাপানি, আরবী, হিব্রু এবং অন্যান্য বেশিরভাগ স্ক্রিপ্টগুলির জন্য কাজ করবে না।


15
চতুর। তবে আমার খুব সীমিত বোঝার ভিত্তিতে, এটি চীনা বা জাপানের মতো উচ্চতর এবং নিম্নতর অক্ষরের সাথে বর্ণমালাগুলি নিয়ে কাজ করে না
নটর

4
দুর্দান্ত (এবং চালাক) কোড সমস্ত ল্যাটিন ভিত্তিক বর্ণমালা নিয়ে কাজ করে।
fvlinden

4
ব্যক্তিগতভাবে আমি এর মতো ফাংশনগুলিকে পছন্দ করি কারণ
রেগেক্স

4
উজ্জ্বল সমাধান। সি = '1 এ' এর ক্ষেত্রে আপনার স্ট্রিংটিকে কেবল অ্যারে এবং লুপে বিভক্ত করুন, উদাহরণস্বরূপ, `ফাংশন isLetters (arr) {এর জন্য (var i = 0; i <অস্থির দৈর্ঘ্য; i ++) {যদি (আরআর [i])। toLowerCase ()! = arr [i] .toUpperCase ()) {অন্য} মিথ্যা ফেরত দিন; } true সত্য প্রত্যাবর্তন; } `
রনি রয়স্টন

4
কোনও /[a-z]/iপ্যাটার্নের ভিত্তিতে সমাধানের তুলনায় , এই কৌশলটি লাতিন অক্ষরের সম্পূর্ণ পরিসীমা গ্রহণ করবে। সম্পূর্ণ ল্যাটিন ইউনিকোড আপার-লোয়ার ম্যাপিং সহ অন্যান্য সমাধানের তুলনায় আপনি কোডের আকারে 99.2% সংরক্ষণ করেন। এই সমাধানটিকে "ভুল" বলা ভুল কারণ এটি আপনার সমস্যার উপর নির্ভর করে। যদি আপনার সুযোগটি লাতিন চরিত্রের সেট হয় তবে এটি সমাধানের এটি হাতা এবং মার্জিত উপায়।
ফিলিপ

28
if( char.toUpperCase() != char.toLowerCase() ) 

শুধুমাত্র চিঠির ক্ষেত্রে সত্য আসবে

নীচের মন্তব্যে উল্লেখ করা হিসাবে, যদি আপনার চরিত্রটি অ ইংরেজি, উচ্চ এসকি বা ডাবল বাইট পরিসর হয় তবে আপনার কোড পয়েন্টের জন্য চেক যুক্ত করতে হবে।

if( char.toUpperCase() != char.toLowerCase() || char.codePointAt(0) > 127 )

4
কেবল দ্বিখণ্ডতা যুক্ত করার জন্য, যদি এটিকে কোনও ফাংশনে রূপান্তরিত করা হয় তবে একটি চেক যুক্ত করুন এটি স্ট্রিং এবং দৈর্ঘ্যটি এক হওয়ার জন্য প্রয়োগ করুন বা নিশ্চিত করুন যে দৈর্ঘ্যটি এক। এটি 1aউদাহরণস্বরূপ প্রতিরোধ করা।
রিয়েল্ট করুন

4
@ আঞ্চোভিএলিজেন্ড এটি কাজ করে কারণ সংখ্যা, বিরামচিহ্ন এবং অন্যান্য অ-বর্ণমালা অক্ষরের বড় হাতের এবং ছোট হাতের সংস্করণ নেই। অন্য কথায়, এগুলির উপরের এবং নিম্ন বর্ণ একই হবে, তবে বর্ণের উপরের এবং নিম্নের ক্ষেত্রে পৃথক হবে। ব্যক্তিগতভাবে, আমি এই কৌশলটি পছন্দ করি কারণ এটি ভাষা থেকে পৃথক (এটি ডায়ায়্রিটিকাল চিহ্ন সহ ভাষা নিয়ে কাজ করে)। আমি কোনও মানদণ্ড পরিচালনা করি নি, তবে আমি অনুমান করব যে এটি একটি রেজেক্স তৈরির চেয়ে বেশি দক্ষ। (তবে আমি ভুল হতে পারি, যেহেতু রেইগেক্স আশ্চর্যজনকভাবে দ্রুত।)
ড্যানিয়েল 'ডাং' গ্রিফিথ

4
এটি এমন স্ক্রিপ্টগুলির জন্য ব্যর্থ হয় যা চাইনিজদের মতো উচ্চ এবং নিম্নের ক্ষেত্রে বৈষম্য করে না।
মাইকেল শ্মিড

@ মিশেলশ্মমিড, আমরা কোড পয়েন্ট চেক যোগ করতে পারি "এ" .কোডপয়েন্টএটি (0)। টো স্ট্রিং (16) বলে। কোড পয়েন্টটি 127 এর চেয়ে বেশি হওয়া উচিত
সুমার

4
@ সুমার, কেন এটি সাহায্য করবে? কোড পয়েন্টটি 127 এর উপরে হওয়ার কারণে এটি কোনও চিঠি নয়।
মাইকেল শ্মিড

6

ES6 ইউনিকোড-সচেতন নিয়মিত এক্সপ্রেশন সমর্থন করে।

RegExp(/^\p{L}/,'u').test(str)

এটি সমস্ত বর্ণমালার জন্য কাজ করে।

দুর্ভাগ্যক্রমে, ফায়ারফক্সে একটি বাগ রয়েছে (এটি 78 78 সংস্করণে সংশোধন করা হবে) যা এটি সর্বজনীনভাবে ব্যবহার করা থেকে বাধা দেয়। তবে আপনি যদি নিজের রানটাইম পরিবেশকে নিয়ন্ত্রণ করতে পারেন এবং এটি এটি সমর্থন করে (যেমন নোড.জেএস), এটি একটি সরল, বিস্তৃত সমাধান।

স্বতঃস্ফূর্তভাবে, এক্সআরজিএক্সপ্যাক্স সমস্ত ব্রাউজারগুলিতে আধুনিক নিয়মিত প্রকাশের পলিফিল সরবরাহ করে provides


4

এএসসিআইআই কোডগুলি কীভাবে ব্যবহার করবেন?

let n = str.charCodeAt(0);
let strStartsWithALetter = (n >= 65 && n < 91) || (n >= 97 && n < 123);

4
আপনি কেবল ইংরেজী পাঠ্য প্রক্রিয়াকরণ করছেন এমন সম্ভাব্য ক্ষেত্রে পুরোপুরি কাজ করে। (এমন একটি অনুমান যা প্রায় প্রতিটি ব্যবস্থার জন্যই ভুল))
মাইকেল শ্মিড

যখন অক্ষরগুলি পড়তে সহজ হয় (যেমন এখানে রয়েছে), আসকি বা ইউনিকোড কোডগুলি (যেমন '' এ 'এর পরিবর্তে 65) রচনাগুলি খারাপ অভ্যাস, কারণ এটি অপঠনযোগ্য। কীভাবে এটি সঠিকভাবে লিখতে হয় তার জন্য অন্যান্য উত্তর দেখুন।
ফিলিপ-আন্দ্রে লোরিন

2

এই সমাধান সঙ্গে কাজ করে বিশেষ অক্ষর , অত্যধিক উদাহরণস্বরূপ é, è, ê, ü, ö,à

2 পদক্ষেপ:

  1. এই উত্তরের উপর ভিত্তি করে উচ্চারণগুলি সরান : জাভাস্ক্রিপ্টের একটি স্ট্রিংয়ে অ্যাকসেন্ট / ডায়াক্রিটিক্স সরান
  2. রেজেক্স বা ইউনিকোড (আপনার পছন্দ) ব্যবহার করে কোনও টু জেড অক্ষর পরীক্ষা করুন

আমার সমাধানের লাইভ ডেমো:

  1. গ্লোবাল ফাংশন ব্যবহার করে
  2. জাভাস্ক্রিপ্ট মডিউল প্যাটার্ন ব্যবহার করে

দ্রষ্টব্য : আমি বিশ্বব্যাপী ফাংশনগুলি ব্যবহার করে এমন সমাধানটি পোস্ট করেছি কারণ এটি সম্ভবত বোঝার পক্ষে সহজ। কিন্তু দেখব না "জাভাস্ক্রিপ্ট মডিউল প্যাটার্ন" যদি আপনি ভাল কোড (ক্লিনার, সহজ বজায় রাখা এবং প্রসারিত করতে) চান, দেখতে impressivewebs.com/my-current-javascript-design-pattern এবং এই YouTube ভিডিও (পল আইরিশ দ্বারা উপস্থাপনা)।

var defaultDiacriticsRemovalap = [
    {'base':'A', 'letters':'\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F'},
    {'base':'AA','letters':'\uA732'},
    {'base':'AE','letters':'\u00C6\u01FC\u01E2'},
    {'base':'AO','letters':'\uA734'},
    {'base':'AU','letters':'\uA736'},
    {'base':'AV','letters':'\uA738\uA73A'},
    {'base':'AY','letters':'\uA73C'},
    {'base':'B', 'letters':'\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181'},
    {'base':'C', 'letters':'\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E'},
    {'base':'D', 'letters':'\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779'},
    {'base':'DZ','letters':'\u01F1\u01C4'},
    {'base':'Dz','letters':'\u01F2\u01C5'},
    {'base':'E', 'letters':'\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E'},
    {'base':'F', 'letters':'\u0046\u24BB\uFF26\u1E1E\u0191\uA77B'},
    {'base':'G', 'letters':'\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E'},
    {'base':'H', 'letters':'\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D'},
    {'base':'I', 'letters':'\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197'},
    {'base':'J', 'letters':'\u004A\u24BF\uFF2A\u0134\u0248'},
    {'base':'K', 'letters':'\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2'},
    {'base':'L', 'letters':'\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780'},
    {'base':'LJ','letters':'\u01C7'},
    {'base':'Lj','letters':'\u01C8'},
    {'base':'M', 'letters':'\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C'},
    {'base':'N', 'letters':'\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4'},
    {'base':'NJ','letters':'\u01CA'},
    {'base':'Nj','letters':'\u01CB'},
    {'base':'O', 'letters':'\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C'},
    {'base':'OI','letters':'\u01A2'},
    {'base':'OO','letters':'\uA74E'},
    {'base':'OU','letters':'\u0222'},
    {'base':'OE','letters':'\u008C\u0152'},
    {'base':'oe','letters':'\u009C\u0153'},
    {'base':'P', 'letters':'\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754'},
    {'base':'Q', 'letters':'\u0051\u24C6\uFF31\uA756\uA758\u024A'},
    {'base':'R', 'letters':'\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782'},
    {'base':'S', 'letters':'\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784'},
    {'base':'T', 'letters':'\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786'},
    {'base':'TZ','letters':'\uA728'},
    {'base':'U', 'letters':'\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244'},
    {'base':'V', 'letters':'\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245'},
    {'base':'VY','letters':'\uA760'},
    {'base':'W', 'letters':'\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72'},
    {'base':'X', 'letters':'\u0058\u24CD\uFF38\u1E8A\u1E8C'},
    {'base':'Y', 'letters':'\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE'},
    {'base':'Z', 'letters':'\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762'},
    {'base':'a', 'letters':'\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250'},
    {'base':'aa','letters':'\uA733'},
    {'base':'ae','letters':'\u00E6\u01FD\u01E3'},
    {'base':'ao','letters':'\uA735'},
    {'base':'au','letters':'\uA737'},
    {'base':'av','letters':'\uA739\uA73B'},
    {'base':'ay','letters':'\uA73D'},
    {'base':'b', 'letters':'\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253'},
    {'base':'c', 'letters':'\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184'},
    {'base':'d', 'letters':'\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A'},
    {'base':'dz','letters':'\u01F3\u01C6'},
    {'base':'e', 'letters':'\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD'},
    {'base':'f', 'letters':'\u0066\u24D5\uFF46\u1E1F\u0192\uA77C'},
    {'base':'g', 'letters':'\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F'},
    {'base':'h', 'letters':'\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265'},
    {'base':'hv','letters':'\u0195'},
    {'base':'i', 'letters':'\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131'},
    {'base':'j', 'letters':'\u006A\u24D9\uFF4A\u0135\u01F0\u0249'},
    {'base':'k', 'letters':'\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3'},
    {'base':'l', 'letters':'\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747'},
    {'base':'lj','letters':'\u01C9'},
    {'base':'m', 'letters':'\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F'},
    {'base':'n', 'letters':'\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5'},
    {'base':'nj','letters':'\u01CC'},
    {'base':'o', 'letters':'\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275'},
    {'base':'oi','letters':'\u01A3'},
    {'base':'ou','letters':'\u0223'},
    {'base':'oo','letters':'\uA74F'},
    {'base':'p','letters':'\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755'},
    {'base':'q','letters':'\u0071\u24E0\uFF51\u024B\uA757\uA759'},
    {'base':'r','letters':'\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783'},
    {'base':'s','letters':'\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B'},
    {'base':'t','letters':'\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787'},
    {'base':'tz','letters':'\uA729'},
    {'base':'u','letters': '\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289'},
    {'base':'v','letters':'\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C'},
    {'base':'vy','letters':'\uA761'},
    {'base':'w','letters':'\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73'},
    {'base':'x','letters':'\u0078\u24E7\uFF58\u1E8B\u1E8D'},
    {'base':'y','letters':'\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF'},
    {'base':'z','letters':'\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763'}
];

var diacriticsMap = {};
for (var i=0; i < defaultDiacriticsRemovalap.length; i++){
    var letters = defaultDiacriticsRemovalap[i].letters.split("");
    for (var j=0; j < letters.length ; j++){
        diacriticsMap[letters[j]] = defaultDiacriticsRemovalap[i].base;
    }
}

function removeDiacriticFromChar (char) {
    return diacriticsMap[char] || char; 
}


/*
 *  [1] Remove the accent, based on answer of /programming/990904/javascript-remove-accents-in-strings
 *  [2] Check if a to z character, using regex or unicode (your choice, here using regex)
 *
 */
function isLetter(char) {
  var charWithoutAccent = removeDiacriticFromChar(char);  /* [1] */
  return charWithoutAccent.match(/[a-z]/i);               /* [2] */
}

console.log( "is 'u' is a letter? " + (isLetter('u') ? 'true' : 'false') );
console.log( "is 'ü' is a letter? " + (isLetter('ü') ? 'true' : 'false') );
console.log( "is 'à' is a letter? " + (isLetter('à') ? 'true' : 'false') );
console.log( "is 'ö' is a letter? " + (isLetter('ö') ? 'true' : 'false') );
console.log( "is 'ù' is a letter? " + (isLetter('ù') ? 'true' : 'false') );
console.log( "is 'é' is a letter? " + (isLetter('é') ? 'true' : 'false') );
console.log( "is 'é' is a letter? " + (isLetter('é') ? 'true' : 'false') );
console.log( "is 'ê' is a letter? " + (isLetter('ê') ? 'true' : 'false') );


6
এটি চীনা বা জাপানি চরিত্রগুলির সাথে কাজ করে না বলে মনে হচ্ছে
নটর

9
এটি বলার মতো আকাশটি নীল
অ্যাড্রিয়েন

1

আমি এখানে পোস্ট করছি কারণ আমি একটি নতুন প্রশ্ন পোস্ট করতে চাইনি। ধরে নিলাম কোডটিতে কোনও একক চরিত্রের ঘোষণা নেই, আপনি একটি ত্রুটি সৃষ্টি করতে অক্ষরটি ব্যাখ্যা করতে পারেন এবং চরিত্রের ধরণটি পরীক্ষা করতে পারেন। কিছুটা এইরকম:

function testForLetter(character) {
  try {
    //Variable declarations can't start with digits or operators
    //If no error is thrown check for dollar or underscore. Those are the only nonletter characters that are allowed as identifiers
    eval("let " + character + ";");
    let regExSpecial = /[^\$_]/;
    return regExSpecial.test(character);
  } catch (error) {
    return false;
  }
}

console.log(testForLetter("!")); //returns false;
console.log(testForLetter("5")); //returns false;
console.log(testForLetter("ن")); //returns true;
console.log(testForLetter("_")); //returns false;


যদি আপনার পরীক্ষাটি আন্ডারস্কোরগুলির জন্য সত্য ফিরে আসে তবে তা কার্যকর নয়।
জেরুমে ভার্সট্রিঞ্জ

এটি কোড ইঞ্জেকশনের সম্ভাব্য সুরক্ষা হুমকির পরিচয় দেয়। আদৌ যত্ন সহকারে ব্যবহার করুন।
মাইকেল শ্মিড

0

ES6 থেকে একটি আদর্শ অন্তর্নির্মিত ফাংশন isNaN বা Number.isNaN () ব্যবহার করে চরিত্রটি কোনও চিঠি কিনা তা জানা সম্ভব :

isNaN('s') // true
isNaN('-') // true
isNaN('32') // false, '32' is converted to the number 32 which is not NaN

প্রদত্ত মানটি একটি সংখ্যা না হলে এটি সত্য হয়, অন্যথায় মিথ্যা।


চতুর, তবে আমি নিশ্চিত নই যে এটির একটি যথেষ্ট উত্তর ... এছাড়াও, মার্ক মন্তব্যগুলিতে এটি প্রস্তাব করেছিলেন ...
গ্যারেট মোটজনার

var sn = "স্ট্রিং ইন্ডিজেফ &"; var nn = isNaN (sn) document.getElementById ("ডেমো") inner আমি সংখ্যাগুলি পার করছি বা বিশেষ চরিত্রগুলি এখনও সত্য ফিরে আসে। আপনি আরও বিশদ উত্তর যুক্ত করতে পারেন
মিঃ এস কোডার

কোন বর্ণমালা "-" একটি বর্ণ আছে?
মাইকেল শ্মিড

-1
// to check if the given string contain alphabets    
function isPangram(sentence){
        let lowerCased = sentence.toLowerCase();
        let letters = "abcdefghijklmnopqrstuvwxyz";
        // traditional for loop can also be used
        for (let char of letters){
            if (!lowerCased.includes(char)) return false;
        }
        return true;
    }

4
ইউনিকোডে বর্তমানে 128 000 টি অক্ষর রয়েছে 135 বর্ণমালা covering 26 টি তাদের মধ্যে একটি খুব ছোট উপসেট are
মাইকেল শ্মিড

-1

আমি এটি করার জন্য একটি ফাংশন করেছি:

var isLetter = function (character) {
  if( (character.charCodeAt() >= 65 && character.charCodeAt() <= 90) || (character.charCodeAt() >= 97 && character.charCodeAt() <= 122) ) {
    return true;
  }
  else{
    return false;
  }
}

অক্ষরের কোড যদি কোনও চিঠি উল্লেখ করে তবে এটি মূলত ASCII টেবিলটিতে যাচাই করে।

আপনি এই লিঙ্কে হওয়া ASCII টেবিল দেখতে এবং কলাম তুলনা করতে পারবেন ডিসেম্বর (যেখানে কোড) এবং প্রতীক : https://www.ascii-code.com/

দ্রষ্টব্য: আমার ফাংশনটি কেবল "সরল" অক্ষরের সাথে সত্য (যেমন "Á", "é", "ç", "Ü" এটি মিথ্যা ফিরে আসবে ... তবে আপনার যদি প্রয়োজন হয় তবে আপনি এই ফাংশনটিকে অন্য শর্তে অভিযোজিত করতে পারেন )।


-1

সুতরাং আমরা charArt()ফাংশন ব্যবহার করে প্রথম চরিত্রটি পেয়েছি তারপরে নিয়মিত অভিব্যক্তি ব্যবহার করে ম্যাচ করার চেষ্টা করব যে কোনও চিঠিটি একটি থেকে জেড থেকে শুরু করে নিম্নতর হয়েছে কিনা তা পরীক্ষা করার জন্য এবং ফলাফল হিসাবে এটি প্রত্যাবর্তন করেboolean

Boolean('#Foo'.charAt(0).match(/[a-zA-Z]/)) // false
Boolean('Foo'.charAt(0).match(/[a-zA-Z]/)) // true

আপনি কি কোডটির একটি সংক্ষিপ্ত ব্যাখ্যা বা বর্ণনা সরবরাহ করতে পারেন? কোড শুধুমাত্র উত্তর নিরুৎসাহিত করা হয়।
নিমন্তা

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