আমি কীভাবে কোনও স্ট্রিংয়ের শেষ অক্ষর পেতে পারি


736

আমার আছে

var id="ctl03_Tabs1";

জাভাস্ক্রিপ্ট ব্যবহার করে, আমি কীভাবে শেষ পাঁচটি অক্ষর বা শেষ চরিত্র পেতে পারি?


6
শেষ চরিত্রটি পেতে সেরা বিকল্পটি হবে id.charAt (id.leth-1)
দিলহান জয়থিলাকে

64
পাঠকদের জন্য নোট: প্রথম উত্তরটি অতীতে পড়ার বিষয়ে নিশ্চিত হন, বিশেষত @ টেরেন্সের একটি উত্তর।
অফিরমো

উত্তর:


1085

সম্পাদনা: অন্যরা যেমন উল্লেখ করেছে, slice(-5)পরিবর্তে ব্যবহার করুন substrযাইহোক, .split().pop()অন্য পদ্ধতির জন্য এই উত্তরটির নীচে সমাধানটি দেখুন ।

আসল উত্তর:

আপনি সম্পত্তিটির .substr()সাথে মিলিত জাভাস্ক্রিপ্ট স্ট্রিং পদ্ধতিটি ব্যবহার করতে চাইবেন .length

var id = "ctl03_Tabs1";
var lastFive = id.substr(id.length - 5); // => "Tabs1"
var lastChar = id.substr(id.length - 1); // => "1"

এটি id.leth - 5 থেকে শুরু হওয়া অক্ষর পায় এবং, যেহেতু .substr () এর দ্বিতীয় যুক্তি বাদ দেওয়া হয়েছে, স্ট্রিংয়ের শেষে অবিরত থাকবে।

.slice()অন্যরা নীচে নির্দেশ করেছেন বলে আপনিও পদ্ধতিটি ব্যবহার করতে পারেন ।

আপনি যদি কেবল আন্ডারস্কোরের পরে অক্ষরগুলি সন্ধান করেন তবে আপনি এটি ব্যবহার করতে পারেন:

var tabId = id.split("_").pop(); // => "Tabs1"

এটি স্ট্রিংটিকে আন্ডারস্কোরের একটি অ্যারেতে বিভক্ত করে এবং তারপরে অ্যারে থেকে শেষ উপাদানটি "পপস" করে (যা আপনি চাইছেন স্ট্রিং)।


5
প্রথম সমাধানটি আরও খাটো এবং দ্রুত করা যায়, নীচে আমার উত্তরটি দেখুন। যাইহোক, আমি এই বিশেষ পরিস্থিতিতে বিভক্ত এবং পপ ধারণা সাথে একমত না।
টেরেন্স

3
.Slice (-5) এবং .substr (দৈর্ঘ্য - 5) এর সাথে তুলনা করা .split().pop()একটি দুর্দান্ত পারফরম্যান্স হিট। আপনি যদি লুপটিতে এমন কিছু ব্যবহার করেন এবং পারফরম্যান্সটি সমালোচনামূলক হয় তবে আপনি এটি মাথায় রাখতে চান।
nwayve

7
আপনার পরীক্ষায়, .split().pop()এখনও প্রতি সেকেন্ডে 5 মিলিয়ন অপারেশন। এটি কোনও পারফরম্যান্স সমস্যা না হওয়া পর্যন্ত এটি কোনও পারফরম্যান্স সমস্যা নয়। ;)
জ্যামন হলমগ্রেন

1
আপনি ঠিক আছেন আমি আমার উত্তর সম্পাদনা করেছি উল্লেখ করার জন্য যে sliceএই সময়ে একটি ভাল বিকল্প।
জামন হল্মগ্রেন

1
যদি আপনি প্রয়োগ করার চেষ্টা করছেন sliceবা substrকোনও সংখ্যার (উপসর্গ) এ চলেছেন তবে প্রথমে এটিকে স্ট্রিংয়ে রূপান্তর করুন। উদাহরণস্বরূপmyVar.toString().slice(-5)
dnns

803

ব্যবহার করবেন না .substr()। ব্যবহার করুন .slice()পদ্ধতি পরিবর্তে, কারণ এটি ক্রস ব্রাউজার সামঞ্জস্যপূর্ণ (আইই দেখুন)।

const id = "ctl03_Tabs1";
console.log(id.slice(id.length - 5)); //Outputs: Tabs1
console.log(id.slice(id.length - 1)); //Outputs: 1

সাবস্ট্রাস্ট () নেগেটিভ মান সহ আইই তে কাজ করছে না


6
হ্যাঁ স্লাইস নেতিবাচক মানগুলি গ্রহণ করে যা দুর্দান্ত! slice()রেফারেন্স: ডেভেলপার.মোজিলা.আর.ইন-
ইউএস

3
আমি এই উত্তরটি পছন্দ করি, যদিও গৃহীত কোনওটি ঠিক কাজ করে।
ডেভ ওয়াটস

3
এই উত্তরটি হওয়া উচিত, এইভাবে স্লাইস ব্যবহার করা আরও পারফরম্যান্স: jsppha.com/slice-vs-substr-
এবং-

ক্রোম 55 মনে হচ্ছে সাবস্ট্রাস্ট 20% দ্রুত
ফ্যান্টাপপপ

6
আমি ধরেছি স্লাইস কেবল তার ধারাবাহিক হলেই কাজ করবে? শেষ যদি হত _Tabs15? টুকরো (-5) কেবল দখল করবে abs15? বিভাজন / পপ বিচিত্র দৈর্ঘ্যের জন্য আরও ভাল কাজ করে ...
ব্রায়ান র্যামসে

65

আপনি শেষ এন অক্ষরগুলি পুনরুদ্ধার করতে নেতিবাচক শুরুর অবস্থান সহ সাবস্ট্রটার () পদ্ধতিটি ব্যবহার করতে পারেন । উদাহরণস্বরূপ, এটি শেষ 5 পায়:

var lastFiveChars = id.substr(-5);

সেরা এবং সংক্ষিপ্ত উত্তর। মূল স্ট্রিংয়ের দৈর্ঘ্য জানতে হবে না (বর্তমান ব্রাউজারগুলির জন্য, তাই আমরা আইআই বাদ দিই)
থানহ ট্রুং

60

শেষ চরিত্রটি পাওয়া সহজ, কারণ আপনি স্ট্রিংগুলিকে অ্যারে হিসাবে ব্যবহার করতে পারেন:

var lastChar = id[id.length - 1];

একটি স্ট্রিংয়ের একটি অধ্যায় পেতে, আপনি ব্যবহার করতে পারেন substr ফাংশন বা সাবস্ট্রিং ফাংশন:

id.substr(id.length - 1); //get the last character
id.substr(2);             //get the characters from the 3rd character on
id.substr(2, 1);          //get the 3rd character
id.substr(2, 2);          //get the 3rd and 4th characters

মধ্যে পার্থক্য substrএবং substringকিভাবে দ্বিতীয় (ঐচ্ছিক) প্যারামিটার চিকিত্সা করা হয়। ইন substr, এটি সূচক (প্রথম পরামিতি) থেকে অক্ষরের পরিমাণ। ইন substring, এটি যেখানে অক্ষর স্লাইসিংয়ের শেষ হওয়া উচিত তার সূচক।


1
আপনার টাইপো susbstr সাবট্রাস্ট হওয়া উচিত
জর্জ

24

নিম্নলিখিত স্ক্রিপ্ট জাভাস্ক্রিপ্ট ব্যবহার করে একটি স্ট্রিংয়ে সর্বশেষ 5 টি অক্ষর এবং শেষ 1 টি অক্ষর পাওয়ার ফলাফল দেখায়:

var testword='ctl03_Tabs1';
var last5=testword.substr(-5); //Get 5 characters
var last1=testword.substr(-1); //Get 1 character

আউটপুট:

ট্যাব 1 // পেয়েছেন 5 টি অক্ষর

1 // পেয়েছেন 1 টি চরিত্র


4
আইইয়ের সাথে সামঞ্জস্যপূর্ণ নয়, আমার উত্তর দেখুন।
তেরেেন্স


7

substrএকটি স্ট্রিংয়ের একক চর পেতে পদ্ধতি ব্যবহার করার দরকার নেই !

জ্যামন হল্মগ্রেনের উদাহরণ গ্রহণ করে আমরা সাবস্ট্রাস্টার পদ্ধতিটি পরিবর্তন করতে পারি এবং কেবল অ্যারের অবস্থানটি নির্দিষ্ট করতে পারি:

var id = "ctl03_Tabs1";
var lastChar = id[id.length - 1]; // => "1"

5

সাবস্ট্রাস্ট ফাংশন আপনাকে শেষ চরিত্রটি পেতে একটি বিয়োগ ব্যবহার করার অনুমতি দেয়।

var string = "hello";
var last = string.substr(-1);

এটা খুব নমনীয়। উদাহরণ স্বরূপ:

// Get 2 characters, 1 character from end
// The first part says how many characters
// to go back and the second says how many
// to go forward. If you don't say how many
// to go forward it will include everything
var string = "hello!";
var lasttwo = string.substr(-3,2);
// = "lo"

4

একটি উপায় ব্যবহার করা হবে slice, অনুসরণ অনুসরণ:

var id="ctl03_Tabs1";
var temp=id.slice(-5);

সুতরাং মান tempহবে "Tabs1"


3

আপনি যদি কেবল সর্বশেষ অক্ষর বা জানার অবস্থানের কোনও অক্ষর চান তবে আপনি কেবল অ্যারে হিসাবে স্ট্রিংটি ট্রেট করতে পারেন! - জাভাস্ক্রিপ্টে স্ট্রিংগুলি পুনরাবৃত্তিযোগ্য -

Var x = "hello_world";
 x[0];                    //h
 x[x.length-1];   //d

তবুও যদি আপনার কেবলমাত্র একটি চরিত্রের বেশি প্রয়োজন হয় তবে স্প্লাইস ব্যবহার কার্যকর

x.slice(-5);      //world

আপনার উদাহরণ সম্পর্কে

"rating_element-<?php echo $id?>"

আইডি বের করতে আপনি সহজেই স্প্লিট + পপ ব্যবহার করতে পারেন

Id= inputId.split('rating_element-')[1];

এটি কোনও আইডি 'রেটিং-এলিমেন্ট' এর পরে না থাকলে এটি আইডিটি ফেরত দেয় বা অপরিজ্ঞিত করে দেয় :)


2

ধরে নিই যে আপনি স্ট্রিংটিকে অন্য স্ট্রিংয়ের শেষের সাথে তুলনা করবেন এবং ফলাফলটি বুলিয়ান হিসাবে ব্যবহার করুন আপনি স্ট্রিং ক্লাসটি এটি সম্পাদন করতে প্রসারিত করতে পারেন:

String.prototype.endsWith = function (substring) {
  if(substring.length > this.length) return false;
  return this.substr(this.length - substring.length) === substring;
};

আপনাকে নিম্নলিখিতটি করার অনুমতি দিচ্ছেন:

var aSentenceToPonder = "This sentence ends with toad"; 
var frogString = "frog";
var toadString = "toad";
aSentenceToPonder.endsWith(frogString) // false
aSentenceToPonder.endsWith(toadString) // true

1
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1);

আমি এই প্রশ্নটি পেয়েছি এবং কিছু গবেষণার মাধ্যমে আমি এটি খুঁজে পেয়েছি এটি সর্বশেষ চরিত্রটি পাওয়ার সবচেয়ে সহজ উপায়।

অন্যরা যেমন শেষ 5 পাওয়ার জন্য সম্পূর্ণতার জন্য উল্লেখ করেছে এবং যুক্ত করেছে:

var last5 = id.substr(-5);

0

এটি স্ট্রিংয়ের শেষ চরিত্রটি হলে এটি কমাটি সরিয়ে ফেলবে ..

var str = $("#ControlId").val();

if(str.substring(str.length-1)==',') {

  var stringWithoutLastComma = str.substring(0,str.length-1);    

}

4
এটির মূল প্রশ্নটি প্রায় নেই aring
silasjmaton

0

আমার আসলে নিম্নলিখিত সমস্যা আছে এবং এটি কীভাবে উপরের উত্তরের সাহায্যে সমাধান করেছি তবে আইডি বের করার ক্ষেত্রে বিভিন্ন পদ্ধতির একটি ইনপুট উপাদান তৈরি করে।

আমি একটি দিয়ে দায়ের ইনপুট সংযুক্ত করেছি

id="rating_element-<?php echo $id?>"

এবং, যখন এই বোতামটি ক্লিক করা হয়েছে আমি কেবল আইডিটি (যা সংখ্যাটি) বা পিএইচপি আইডি ($ আইডি) বের করতে চাই

সুতরাং এখানে আমি কি।

 $('.rating').on('rating.change', function() {
            alert($(this).val());
           // console.log(this.id);
           var static_id_text=("rating_element-").length;       
           var product_id =  this.id.slice(static_id_text);       //get the length in order to deduct from the whole string    
          console.log(product_id );//outputs the last id appended
        });

0

শেষ 5

var id="ctl03_Tabs1";
var res = id.charAt(id.length-5)
alert(res);

গত

   
 var id="ctl03_Tabs1";
 var res = id.charAt(id.length-1)
alert(res);


প্রথম উদাহরণের জন্য, এ পরিবর্তন charAtকরুন substr। যে charAtপায় পঞ্চম FROM-গত
নিয়মিত জো

-1

আমি নিশ্চিত এটি কাজ করবে ....

var string1="myfile.pdf"
var esxtenion=string1.substr(string1.length-4)

মান extensionহবে".pdf"

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