জাভাস্ক্রিপ্টে একটি স্ট্রিংয়ের প্রথম অক্ষর মুছুন


505

আমি একটি স্ট্রিংয়ের প্রথম অক্ষর মুছতে চাই, যদি প্রথম অক্ষর 0 হয় তবে 0 টি একাধিকবার থাকতে পারে।

এমন কোনও সাধারণ ক্রিয়া আছে যা প্রথম চরিত্রটি পরীক্ষা করে এবং যদি এটি 0 হয় তবে এটি মুছে ফেলা হয়?

এখনই, আমি এটি জেএস slice()ফাংশন দিয়ে চেষ্টা করছি তবে এটি খুব বিশ্রী।

উত্তর:


763

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

var s1 = "foobar";
var s2 = s1.substr(1);
alert(s2); // shows "oobar"

স্ট্রিংয়ের শুরুতে সমস্ত 0 টি অপসারণ করতে:

var s = "0000test";
while(s.charAt(0) === '0')
{
 s = s.substr(1);
}

11
@ স্টিফেন: এই ক্ষেত্রে, এটি কোনও তাত্পর্যপূর্ণ হবে না কারণ charAtসর্বদা একটি স্ট্রিং ফেরত দেয়, এমনকি সূচকটি শেষ চরিত্রের সূচককে ছাড়িয়ে যায়, সুতরাং কোনও ধরণের জবরদস্তি সম্পাদিত হয় না এবং অ্যালগরিদমটি অভিন্ন হয়ে যায়। তবে আমি ===তার চেয়ে বেশি পছন্দ করি ==এমনকি যখন এটি কোনও পার্থক্য করে না। ;)
ব্যবহারকারী 113716

4
@ হিজনার: প্রকারগুলি যদি একই রকম হয় তবে তারা সর্বদা এই ক্ষেত্রে থাকত, ===এবং ==ঠিক একই পদক্ষেপগুলি সম্পাদন করুন ( অনুমান অনুসারে, কমপক্ষে), সুতরাং অন্যটির চেয়ে ভাল অভিনয় করার আশা করার কোনও কারণ নেই ।
টিম ডাউন

2
@MiguelCoder। অনুমান অনুসারে, পদক্ষেপগুলি একই (ব্রাউজারের প্রয়োগগুলি অবশ্যই আলাদা হতে পারে)। আপনি আমাকে বিশ্বাস না হলে এটি পড়ুন।
টিম ডাউন

3
@ রেলিলিইসকোড 8 বছর আগে প্রশ্নটি জিজ্ঞাসা করা হয়েছিল যে বিষয়টি बाजूला রেখে। এতে বলা হয়েছিল "0 টি একাধিকবার থাকতে পারে।" এবং প্রশ্নকর্তা আমার সমাধানটি গ্রহণ করেছেন।
শেড

6
যদিও এখনও বৈধ, আপনার প্রতিস্থাপনের substrসাথে প্রতিস্থাপন করে আপডেট করা উচিত substring। এমডিএন পরীক্ষা করুন: বিকাশকারী.মোজিলা.আর.ইন-
ইউএস / ডকস / ওয়েবে / জাভা স্ক্রিপ্ট / রেফারেন্স/…

186

খুব পঠনযোগ্য কোডটি হ'ল .substring()দ্বিতীয় অক্ষর (1) এর সূচক সেট করতে শুরু করে (প্রথম বর্ণের সূচক 0 থাকে)। .substring()পদ্ধতির দ্বিতীয় প্যারামিটারটি আসলে optionচ্ছিক, তাই আপনাকে কল করার দরকার নেই .length()...

টিএল; ডিআর: স্ট্রিং থেকে প্রথম অক্ষরটি সরান:

str = str.substring(1);

...হ্যাঁ, এটি এতই সহজ...

কিছু নির্দিষ্ট অক্ষর (গুলি) সরানো হচ্ছে:

@ শেডের পরামর্শ অনুসারে, আপনার স্ট্রিংয়ের প্রথম অক্ষরটি "অবাঞ্ছিত" চরিত্রটি হ'ল এটি লুপ করুন ...

var yourString = "0000test";
var unwantedCharacter = "0";
//there is really no need for === check, since we use String's charAt()
while( yourString.charAt(0) == unwantedCharacter ) yourString = yourString.substr(1);
//yourString now contains "test"

.slice()বনাম .substring()বনাম.substr()

থেকে (এবং যে উপর বেশি) উদ্ধৃত String.slice এবং String.substring মধ্যে পার্থক্য কি?

তিনি আরও উল্লেখ করেছেন যে স্লাইসের পরামিতিগুলি যদি নেতিবাচক হয় তবে তারা স্ট্রিংটি শেষ থেকে রেফার করে। সাবস্ট্রিং এবং সাবস্ট্রাস্ট করা হয় না।


84

ব্যবহার করুন .charAt()এবং .slice()

উদাহরণ: http://jsfiddle.net/kCpNQ/

var myString = "0String";

if( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );

যদি বিভিন্ন হতে পারে 0শুরুতে অক্ষর, আপনি পরিবর্তন করতে পারেন if()একটি থেকে while()

উদাহরণ: http://jsfiddle.net/kCpNQ/1/

var myString = "0000String";

while( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );

61

সমস্ত নেতৃস্থানীয় 0গুলি কেটে ফেলার সহজ উপায় হ'ল:

var s = "00test";
s = s.replace(/^0+/, "");

যদি 0প্রশ্নের দ্বারা বোঝানো হয় যে কেবল একটি একক নেতৃস্থানীয় চরিত্রকে বাদ দিই, আপনি ব্যবহার করতে পারেন

s = s.replace(/^0/, "");


16

আপনি কি substringফাংশনটি চেষ্টা করেছেন ?

string = string.indexOf(0) == '0' ? string.substring(1) : string;

এখানে একটি উল্লেখ - https://developer.mozilla.org/en-US/docs/ জাভা স্ক্রিপ্ট / রেফারেন্স / গ্লোবাল_অবজেক্টস / স্ট্রিং / সাবস্ট্রিং

এবং আপনি সর্বদা একাধিক 0 এর জন্য এটি করতে পারেন:

while(string.indexOf(0) == '0')
{
    string = string.substring(1);
}

7
var s = "0test";
if(s.substr(0,1) == "0") {
    s = s.substr(1);
}

সকলের জন্য 0: http://jsfiddle.net/An4MY/

String.prototype.ltrim0 = function() {
 return this.replace(/^[0]+/,"");
}
var s = "0000test".ltrim0();

হ্যাঁ, এটি কাজ করবে, যদি কেবল একটি 0 স্ট্রিং থাকে। তবে আমার এটিরও প্রয়োজন যদি স্ট্রিংটি ভের s = "00test0" এর মতো দেখায়; তারপরে কেবল প্রথম দুটি 0 টি প্রতিস্থাপন করতে হয়েছিল
জিংস

1
না কেন charAt? বন্ধনী কেন? একটি প্রোটোটাইপ এক্সটেনশন কেন? ইশ।
রাই-

6
//---- remove first and last char of str    
str = str.substring(1,((keyw.length)-1));

//---- remove only first char    
str = str.substring(1,(keyw.length));

//---- remove only last char    
str = str.substring(0,(keyw.length));

4

String.prototype.trimStartWhile = function(predicate) {
    if (typeof predicate !== "function") {
    	return this;
    }
    let len = this.length;
    if (len === 0) {
        return this;
    }
    let s = this, i = 0;
    while (i < len && predicate(s[i])) {
    	i++;
    }
    return s.substr(i)
}

let str = "0000000000ABC",
    r = str.trimStartWhile(c => c === '0');
    
console.log(r);


3

এখানে একটি যা ইনপুটটি ধরে না নেয় তা হ'ল string, ব্যবহার substringএবং কয়েকটি ইউনিট পরীক্ষার সাথে আসে:

var cutOutZero = function(value) {
    if (value.length && value.length > 0 && value[0] === '0') {
        return value.substring(1);
    }

    return value;
};

http://jsfiddle.net/TRU66/1/



0
var test = '0test';
test = test.replace(/0(.*)/, '$1');

2
এটি প্রত্যাশিত হিসাবে সম্পাদন করে না এবং এটি সত্যই অদক্ষ।
রাই-

0

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

var str = "0000one two three0000"; //TEST  
str = str.replace(/^\s+|\s+$/g,'0'); //ANSWER

জেএস এর জন্য এটির আসল বাস্তবায়ন

string.trim():
if (!String.prototype.trim) {
 String.prototype.trim = function() {
  return this.replace(/^\s+|\s+$/g,'');
 }
}

আমরা বিভ্রান্তিকে একটি বাস্তবায়ন সমস্যা হিসাবে বিবেচনা করি না, তবে এটি প্রায়শই আপনার পরিবেশ আপনাকে যে ভেরিয়েবলগুলি উপস্থাপন করে তার সাথে সামঞ্জস্য করার ক্ষমতা ঘাটতির জন্য দায়ী করা হয়। এই ক্ষেত্রে, আপনার নিউরাল সংযোগগুলি আসল প্রশ্নের উত্তর হিসাবে নেটিভ জেএস ফাংশন বাস্তবায়নের এই পরিবর্তিত গ্রহণের প্রয়োজনীয় বোঝার জন্য পরিচালনা করতে অক্ষম।
ফিনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.