javascript - 如果 JavaScript 中的第一个字符是非数字,如何从字符串中删除它?

标签 javascript

我的表单上有一个文本字段,允许个人输入价格。我试图允许在该字段中输入其他货币符号,但我的幕后逻辑需要删除任何货币符号。

为了方便起见,我实际上只关心第一个字符,并且仅当它是非数字时。

否则,我无法使用删除价格字段中任何小数点或逗号的解决方案,否则我的计算将无法进行。

更新:我目前正在使用 itemCost = itemCost.replace(/\$/, '');

但现在我正尝试将其开放给任何货币符号。

最佳答案

您可以像访问数组一样访问字符串。查看字符串位置零处的字符 -

var inputString = '...' // whatever the user entered
var firstChar = inputString[0];
if (!Number.isInteger(firstChar)) {
    inputString = inputString.substr(1)
}

我正在使用String.subStr function here从第一个索引开始创建字符串的副本。

请考虑,尽管该解决方案假定提供的字符串有一个货币符号。 “USD $1.00”甚至“$1.00”等输入不适用于此解决方案。

<小时/>

另一种方法是从整个输入字符串中删除所有非数字字符(不包括小数点和逗号)。

var inputString = '...' // whatever the user entered
var priceString = inputString.replace(/[^0-9\.,]/, '')

// $1.00 -> 1.00
// USD #$1,000.00 -> 1,000.00

关于javascript - 如果 JavaScript 中的第一个字符是非数字,如何从字符串中删除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45841697/

相关文章:

javascript - 无法安装和使用 Turf.js

javascript - 动态创建的 Div 更改下拉选项

javascript - 防止特定属性在react js中的DOM节点上渲染

javascript - Angular 和 Materialise 日期选择器

javascript - 使用 Jquery 和 Javascript 解析 xml

javascript - Angular - 使用范围变量设置 ng-model

javascript - 将所有浏览器步骤捕获到 HTML 报告中

javascript - 使用 ES5 进行 Angular 2 rc.1 测试

javascript - 使用 JavaScript 的 CSS 过渡

javascript - Polymer v1.0 - 数据绑定(bind)更改未传播