जवाबों:
आप एक स्ट्रिंग के पहले वर्ण को हटा सकते हैं substr
:
var s1 = "foobar";
var s2 = s1.substr(1);
alert(s2); // shows "oobar"
स्ट्रिंग की शुरुआत में सभी को हटाने के लिए:
var s = "0000test";
while(s.charAt(0) === '0')
{
s = s.substr(1);
}
===
और ==
ठीक उन्हीं चरणों (कम से कम कल्पना के अनुसार,) करते हैं, तो वहाँ अन्य की तुलना में बेहतर प्रदर्शन करने के लिए एक उम्मीद का कोई कारण नहीं है ।
substr
साथ प्रतिस्थापित करके substring
। MDN की जाँच करें: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
बहुत पठनीय कोड .substring()
दूसरे वर्ण (1) के पहले सेट इंडेक्स के साथ उपयोग करना है (पहले वर्ण में इंडेक्स 0 है)। .substring()
विधि का दूसरा पैरामीटर वास्तव में वैकल्पिक है, इसलिए आपको कॉल करने की आवश्यकता नहीं है .length()
...
str = str.substring(1);
...हां, यह उतना सरल है...
जैसा कि @Shaded ने सुझाव दिया है, बस इसे लूप करें जबकि आपकी स्ट्रिंग का पहला चरित्र "अवांछित" चरित्र है ...
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 के बीच क्या अंतर है?
वह यह भी बताते हैं कि यदि स्लाइस के पैरामीटर नकारात्मक हैं, तो वे स्ट्रिंग को अंत से संदर्भित करते हैं। पदार्थ और पदार्थ नहीं करता है।
का उपयोग करें .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 );
आप इसे सबस्ट्रिंग विधि से कर सकते हैं :
let a = "My test string";
a = a.substring(1);
console.log(a); // y test string
क्या आपने substring
फ़ंक्शन की कोशिश की ?
string = string.indexOf(0) == '0' ? string.substring(1) : string;
यहाँ एक संदर्भ है - https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring
और आप हमेशा कई 0s के लिए ऐसा कर सकते हैं:
while(string.indexOf(0) == '0')
{
string = string.substring(1);
}
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();
charAt
? कोष्ठक क्यों? एक प्रोटोटाइप का विस्तार क्यों? छी।
//---- 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));
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);
यहां एक ऐसा माना जाता है कि इनपुट एक string
, उपयोग substring
, और यूनिट परीक्षणों के एक जोड़े के साथ आता है:
var cutOutZero = function(value) {
if (value.length && value.length > 0 && value[0] === '0') {
return value.substring(1);
}
return value;
};
ट्रिम के जावास्क्रिप्ट कार्यान्वयन से ()> जो स्ट्रिंग्स से रिक्त स्थान को निकालता है और अग्रणी करता है। यहाँ इस प्रश्न के उत्तर का एक परिवर्तित कार्यान्वयन है।
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,'');
}
}
charAt
हमेशा एक स्ट्रिंग लौटाता है, भले ही सूचकांक पिछले वर्ण के सूचकांक से अधिक हो, इसलिए कोई प्रकार का जबरदस्ती प्रदर्शन नहीं किया गया है, और एल्गोरिथ्म समान हो रहा है। लेकिन मैं पसंद करते हैं===
अधिक==
तब भी जब यह एक फर्क नहीं है। ;)