জাভাস্ক্রিপ্ট ব্যবহার করে স্ট্রিং থেকে কমাগুলি সরান


97

আমি স্ট্রিং থেকে কমাগুলি অপসারণ করতে এবং জাভাস্ক্রিপ্ট ব্যবহার করে সেই পরিমাণ গণনা করতে চাই।

উদাহরণস্বরূপ, আমার সেই দুটি মান রয়েছে:

  • 100,000.00
  • 500,000.00

এখন আমি সেই স্ট্রিং থেকে কমাগুলি মুছতে এবং সেই পরিমাণের মোটটি চাই।

উত্তর:


172

কমাগুলি অপসারণ করতে, আপনার replaceস্ট্রিং ব্যবহার করতে হবে । ফ্ল্যাটে রূপান্তর করতে যাতে আপনি গণিত করতে পারেন, আপনার প্রয়োজন parseFloat:

var total = parseFloat('100,000.00'.replace(/,/g, '')) +
            parseFloat('500,000.00'.replace(/,/g, ''));

4
হ্যাঁ, একত্রিত করা প্রয়োজন replaceএবং parseFloat। এখানে দ্রুত পরীক্ষার মামলাটি রয়েছে: jsfiddle.net/TtYpH
শ্যাডো উইজার্ড আপনার পক্ষে কান

4
এটি 2017, লোকেল স্ট্রিংগুলিতে যাওয়ার কোনও উপায় নেই ? আপনি এই ফাংশনটি কীভাবে বিপরীত করবেন? বিকাশকারী.মোজিলা.অর্গ.ইন- ইউএস / ডকস / ওয়েব / জাভা স্ক্রিপ্ট / রেফারেন্স / । এখানে একটি পৃথক প্রশ্ন পোস্ট করেছেন: stackoverflow.com/questions/41905406/…
কোস্টা

4

সম্পর্কিত উত্তর, তবে আপনি যদি কোনও ফর্মের মধ্যে কোনও ব্যবহারকারীকে ইনপুট মানগুলি পরিষ্কার করতে চান তবে আপনি যা করতে পারেন তা এখানে:

const numFormatter = new Intl.NumberFormat('en-US', {
  style: "decimal",
  maximumFractionDigits: 2
})

// Good Inputs
parseFloat(numFormatter.format('1234').replace(/,/g,"")) // 1234
parseFloat(numFormatter.format('123').replace(/,/g,"")) // 123

// 3rd decimal place rounds to nearest
parseFloat(numFormatter.format('1234.233').replace(/,/g,"")); // 1234.23
parseFloat(numFormatter.format('1234.239').replace(/,/g,"")); // 1234.24

// Bad Inputs
parseFloat(numFormatter.format('1234.233a').replace(/,/g,"")); // NaN
parseFloat(numFormatter.format('$1234.23').replace(/,/g,"")); // NaN

// Edge Cases
parseFloat(numFormatter.format(true).replace(/,/g,"")) // 1
parseFloat(numFormatter.format(false).replace(/,/g,"")) // 0
parseFloat(numFormatter.format(NaN).replace(/,/g,"")) // NaN

এর মাধ্যমে স্থানীয় তারিখ স্থানীয়ভাবে ব্যবহার করুন format। এটি কোনও খারাপ ইনপুটগুলি পরিষ্কার করে, যদি এটির একটি থাকে তবে এটির জন্য NaNআপনাকে স্ট্রিং প্রদান করতে পারে check লোকেলের অংশ হিসাবে (10/12/19 হিসাবে) কমাগুলি অপসারণ করার কোনও উপায় নেই , সুতরাং আপনি কমাগুলি ব্যবহার করে অপসারণ করতে একটি রেজেক্স কমান্ড ব্যবহার করতে পারেন replace

ParseFloat এই ধরণের সংজ্ঞাটি স্ট্রিং থেকে সংখ্যায় রূপান্তর করে

আপনি যদি প্রতিক্রিয়া ব্যবহার করেন, এটি আপনার গণনা ফাংশনটি দেখতে দেখতে পারে:

updateCalculationInput = (e) => {
    let value;
    value = numFormatter.format(e.target.value); // 123,456.78 - 3rd decimal rounds to nearest number as expected
    if(value === 'NaN') return; // locale returns string of NaN if fail
    value = value.replace(/,/g, ""); // remove commas
    value = parseFloat(value); // now parse to float should always be clean input

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