我的表单上有一个文本字段,允许个人输入价格。我试图允许在该字段中输入其他货币符号,但我的幕后逻辑需要删除任何货币符号。
为了方便起见,我实际上只关心第一个字符,并且仅当它是非数字时。
否则,我无法使用删除价格字段中任何小数点或逗号的解决方案,否则我的计算将无法进行。
更新:我目前正在使用 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/