मैं स्ट्रिंग से कॉमा को निकालना चाहता हूं और जावास्क्रिप्ट का उपयोग करके उन राशि की गणना करता हूं।
उदाहरण के लिए, मेरे पास दो मूल्य हैं:
- 100,000.00
- 500,000.00
अब मैं उन स्ट्रिंग से कॉमा निकालना चाहता हूं और उन राशि का कुल चाहता हूं।
मैं स्ट्रिंग से कॉमा को निकालना चाहता हूं और जावास्क्रिप्ट का उपयोग करके उन राशि की गणना करता हूं।
उदाहरण के लिए, मेरे पास दो मूल्य हैं:
अब मैं उन स्ट्रिंग से कॉमा निकालना चाहता हूं और उन राशि का कुल चाहता हूं।
जवाबों:
अल्पविराम को हटाने के लिए, आपको replaceस्ट्रिंग पर उपयोग करने की आवश्यकता होगी । एक फ्लोट में परिवर्तित करने के लिए आप गणित कर सकते हैं, आपको इसकी आवश्यकता होगी parseFloat:
var total = parseFloat('100,000.00'.replace(/,/g, '')) +
parseFloat('500,000.00'.replace(/,/g, ''));
संबंधित उत्तर, लेकिन यदि आप किसी उपयोगकर्ता इनपुट मान को एक रूप में चलाना चाहते हैं, तो यहां आप क्या कर सकते हैं:
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आप की एक स्ट्रिंग लौटाता है तो आप इसकी जांच कर सकते हैं। वर्तमान में लोकेल के हिस्से के रूप में कॉमा को हटाने का कोई तरीका नहीं है (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
}
replaceऔरparseFloat। यहाँ त्वरित परीक्षण का मामला है: jsfiddle.net/TtYpH