javascript एचट जावास्क्रिप्ट काट/टुकड़ा/स्ट्रिंग में अंतिम चरित्र बंद ट्रिम करें




एचटीएमएल को समझाइए (17)

https://jsfiddle.net/invos/w3zeqv6v/

https://stackoverflow.com/questions/34817546/javascript-how-to-delete-last-two-characters-in-a-string

यदि आप रिक्त स्थान नहीं चाहते हैं तो बस ट्रिम का उपयोग करें

"11.01 °C".slice(0,-2).trim()

मेरे पास एक स्ट्रिंग है, 12345.00 , और मैं इसे 12345.0 वापस करना 12345.0

मैंने trim पर देखा है, लेकिन ऐसा लगता है कि यह केवल सफेद जगह और slice ट्रिम कर रहा है जो मुझे नहीं लगता कि यह कैसे काम करेगा। कोई सुझाव?


Answer #1
"a string".match(/(.*).$/)[1] // => a strin

"a string".match(/(.*).$/) // returns ["a string", "a strin"]

"a string".match(/(.*).{2}$/)[1] // to get two chars off => a stri
  1. (। *), किसी भी चरित्र को कई बार कैप्चर करता है
  2. , इस मामले में, पिछले चरित्र से मेल खाता है
  3. $, स्ट्रिंग के अंत से मेल खाता है

Answer #2

रेगेक्स का प्रयोग करें:

var aStr = "12345.00";
aStr = aStr.replace(/.$/, '');

Answer #3
if(str.substring(str.length - 4) == "_bar")
{
    str = str.substring(0, str.length - 4);
}

Answer #4

आप slice उपयोग कर सकते हैं! आपको बस यह सुनिश्चित करना होगा कि आप इसका उपयोग कैसे करें। सकारात्मक #s शुरुआत के सापेक्ष हैं, ऋणात्मक संख्या अंत के सापेक्ष हैं।

js>"12345.00".slice(0,-1)
12345.0

Answer #5

यदि आप अंतिम चरित्र को ट्रिम करने की बजाय फ्लोट के जेनेरिक राउंडिंग करना चाहते हैं:

var float1 = 12345.00,
    float2 = 12345.4567,
    float3 = 12345.982;

var MoreMath = {
    /**
     * Rounds a value to the specified number of decimals
     * @param float value The value to be rounded
     * @param int nrDecimals The number of decimals to round value to
     * @return float value rounded to nrDecimals decimals
     */
    round: function (value, nrDecimals) {
        var x = nrDecimals > 0 ? 10 * parseInt(nrDecimals, 10) : 1;
        return Math.round(value * x) / x;
    }
}

MoreMath.round(float1, 1) => 12345.0
MoreMath.round(float2, 1) => 12345.5
MoreMath.round(float3, 1) => 12346.0

संपादित करें: ऐसा लगता है कि इसके लिए एक अंतर्निहित कार्य मौजूद है, जैसा कि पाओलो बताता है। यह समाधान मेरे मुकाबले काफी साफ है। इसके बाद parseFloat उपयोग करें


Answer #6
debris = string.split("_") //explode string into array of strings indexed by "_"

debris.pop(); //pop last element off the array (which you didn't want)

result = debris.join("_"); //fuse the remainng items together like the sun

Answer #7

कैसा रहेगा:

var myString = "12345.00";
myString.substring(0, myString.length - 1);

Answer #8

एक नियमित अभिव्यक्ति वह है जिसे आप ढूंढ रहे हैं:

var str = "foo_bar";
alert(str.replace(/_bar$/, ""));

Answer #9

आप substring फ़ंक्शन का उपयोग कर सकते हैं:

var str = "12345.00";
str = str.substring(0, str.length - 1); // "12345.0"

यह स्वीकार्य उत्तर है, लेकिन नीचे बातचीत के अनुसार, slice वाक्यविन्यास बहुत स्पष्ट है:

var str = "12345.00";
str = str.slice(0, -1); // "12345.0"

Answer #10

ऐसे मामलों में जहां आप किसी स्ट्रिंग के अंत के करीब (कुछ परिवर्तनीय आकार के तारों के मामले में) को हटाना चाहते हैं, तो आप स्लाइस () और substr () को जोड़ सकते हैं।

मेरे पास अल्पविराम से अलग एंकर टैग की एक सूची के साथ, गतिशील रूप से निर्मित मार्कअप के साथ एक स्ट्रिंग थी। स्ट्रिंग कुछ ऐसा था:

var str = "<a>text 1,</a><a>text 2,</a><a>text 2.3,</a><a>text abc,</a>";

अंतिम अल्पविराम को हटाने के लिए मैंने निम्नलिखित किया:

str = str.slice(0, -5) + str.substr(-4);

Answer #11

इसे इस्तेमाल करे:

<script>
    var x="foo_foo_foo_bar";
    for (var i=0; i<=x.length; i++) {
        if (x[i]=="_" && x[i+1]=="b") {
            break;
        }
        else {
            document.write(x[i]);
        }
    }
</script>

आप http://jsfiddle.net/informativejavascript/F7WTn/87/ पर लाइव वर्किंग उदाहरण भी आज़मा सकते हैं।


Answer #12

जावास्क्रिप्ट के स्लाइस फ़ंक्शन का उपयोग करना:

var string = 'foo_bar';
string = string.slice(0, -4); // Slice off last four characters here

इसका उपयोग स्ट्रिंग के अंत में किसी भी लंबाई के '_bar' को हटाने के लिए किया जा सकता है।


Answer #13

यहां एक विकल्प है जो मुझे नहीं लगता कि मैंने अन्य उत्तरों में देखा है, बस मस्ती के लिए।

var strArr = "hello i'm a string".split("");
strArr.pop();
document.write(strArr.join(""));

टुकड़ा या सबस्ट्रिंग के रूप में सुस्पष्ट या सरल नहीं है, लेकिन आपको कुछ अच्छी सरणी विधियों का उपयोग करके स्ट्रिंग के साथ खेलने की अनुमति देता है, इसलिए जानने योग्य।


Answer #14

सबसे आसान तरीका स्ट्रिंग की slice विधि का उपयोग करना है, जो नकारात्मक स्थिति (स्ट्रिंग के अंत से ऑफसेट के अनुरूप) की अनुमति देता है:

var s = "your string";
var withoutLastFourChars = s.slice(0, -4);

यदि आपको अंतिम अंडरस्कोर (और सहित) के बाद सबकुछ हटाने के लिए कुछ और सामान्य की आवश्यकता है, तो आप निम्न कार्य कर सकते हैं (जब तक कम से कम एक अंडरस्कोर रखने की गारंटी दी जाती है):

var s = "your_string";
var withoutLastChunk = s.slice(0, s.lastIndexOf("_"));
// withoutLastChunk == "your"

Answer #15
var str = "test!";
var newStr = str.slice(0,-1); //test

Answer #16

@ जेसन एस:

आप स्लाइस का उपयोग कर सकते हैं! आपको बस यह सुनिश्चित करना होगा कि आप इसका उपयोग कैसे करें। सकारात्मक #s शुरुआत के सापेक्ष हैं, ऋणात्मक संख्या अंत के सापेक्ष हैं।

जेएस> "12345.00"। एसलिस (0, -1) 12345.0

मेरे ग्राफोमनी के लिए खेद है लेकिन पोस्ट को 'jquery' पहले टैग किया गया था। तो, आप jQuery के अंदर स्लाइस () का उपयोग नहीं कर सकते क्योंकि स्लाइस () डीओएम तत्वों के साथ संचालन के लिए jQuery विधि है, सबस्ट्रिंग नहीं ... दूसरे शब्दों में उत्तर @ जोन एरिक्सन वास्तव में सही समाधान का सुझाव देते हैं।

हालांकि, आपकी विधि सरल जावास्क्रिप्ट के अंदर, jQuery फ़ंक्शन से बाहर काम करेगी। टिप्पणियों में अंतिम चर्चा के कारण कहने की आवश्यकता है, कि jQuery अपने माता-पिता के सबसे ज्ञात ईसीएमएस्क्रिप्ट की तुलना में जेएस का अधिक बार नवीकरणीय विस्तार है।

यहां दो विधियां भी मौजूद हैं:

जैसा हमारा:

string.substring(from,to) प्लस के रूप में अगर 'to' इंडेक्स nulled बाकी स्ट्रिंग देता है। तो: string.substring(from) सकारात्मक या नकारात्मक ...

और कुछ अन्य - सबस्ट्र () - जो सबस्ट्रिंग और 'लंबाई' की श्रृंखला प्रदान करते हैं केवल सकारात्मक हो सकते हैं: string.substr(start,length)

इसके अलावा कुछ string.substr(start,length) सुझाव देते हैं कि अंतिम विधि string.substr(start,length) काम नहीं करता है या MSIE के लिए त्रुटि के साथ काम नहीं करता है।





chop