有没有办法在 javaScript 或 jQuery 或剑道网格中将“nb-NO”小数转换为“en-US”

Posted

技术标签:

【中文标题】有没有办法在 javaScript 或 jQuery 或剑道网格中将“nb-NO”小数转换为“en-US”【英文标题】:Is there a way to convert 'nb-NO' decimals to 'en-US' in javaScript or jQuery Or in kendo grid 【发布时间】:2020-07-23 22:56:59 【问题描述】:

"1 234 345,45678" 挪威格式,转换后我需要 1,234,345.45678。 我正在调用客户端模板上的函数的剑道网格内对其进行更改。

【问题讨论】:

【参考方案1】:

您可以将, 替换为. 以及字符串中的所有空格,然后将其转换为Number,最后得到'en-US' 格式的字符串,例如:

const str = '1 234 345,45678'
const getFormattedString = (s, locale = 'en-US') => Number(str
  .replace(',', '.').replace(/\s+/g,'')).toLocaleString(locale, minimumFractionDigits: 5)

console.log( getFormattedString(str) )

将其转换为 Number 的好处是,将来如果您需要基于 de-DE(德语格式)或任何其他语言环境的不同格式的字符串,您可以通过传递 locale 轻松完成函数的参数,例如:

const str = '1 234 345,45678'
const getFormattedString = (s, locale = 'en-US') => Number(str
  .replace(',', '.').replace(/\s+/g,'')).toLocaleString(locale, minimumFractionDigits: 5)

console.log( getFormattedString(str) )

// German uses comma as decimal separator and period for thousands
console.log( getFormattedString(str, 'de-DE') )

// India uses thousands/lakh/crore separators
console.log( getFormattedString(str, 'en-IN') )

【讨论】:

以上是关于有没有办法在 javaScript 或 jQuery 或剑道网格中将“nb-NO”小数转换为“en-US”的主要内容,如果未能解决你的问题,请参考以下文章