首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除字段javascript中的字符

如何删除字段javascript中的字符
EN

Stack Overflow用户
提问于 2012-06-19 22:00:52
回答 4查看 485关注 0票数 0

我尝试使用以下代码将文本字段值从(N50,000.00 NGN)格式化为(50000),但结果生成的不是50000,而是5000000

有人能帮帮忙吗?

代码语言:javascript
复制
<script type="text/javascript" language="javascript">

    function doWork() {
        var amount = document.getElementsByName('amount');
        var str = amount[0].value;
        var temp = '';
        for (i = 0; i < str.length; i++) {
            if (!isNaN(str[i]))
                temp += str[i];
        }
        amount[0].value = temp;
    }
</script>

<input type="text" name="amount" value="N50,000.00 NGN" />
<input type="button" value="submit" onclick="doWork();">
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-19 22:07:15

获得所需内容的最简单方法可能是在for循环中添加另一个条件:

代码语言:javascript
复制
if (str[i] === '.')
    break;
票数 1
EN

Stack Overflow用户

发布于 2012-06-19 22:08:03

让我们来看看你想要格式化的值。

N50,000.00 NGN中,并非所有数字都是NaN。所以你的结果是5000000 (50 000 00)。解决方案是在点符号处停止,例如

代码语言:javascript
复制
function doWork() {
    var amount = document.getElementsByName('amount');
    var str = amount[0].value;
    var temp = '';
    for (i = 0; i < str.length; i++) {
        if (str[i] === '.') break; // there it is
        if (!isNaN(str[i]))
            temp += str[i];
    }
    amount[0].value = temp;
}
票数 0
EN

Stack Overflow用户

发布于 2012-06-19 22:27:01

以下是使用正则表达式完成此操作的一种方法。请注意,如果用户在输入字段中有多个小数点,它的行为可能会很奇怪。

代码语言:javascript
复制
<script type="text/javascript" language="javascript">

    function doWork() {
        var amount = document.getElementsByName('amount');
        amount[0].value = amount[0].value.replace(/[^0-9.]/g, "");
        amount[0].value = amount[0].value.replace(/[.][0-9]*/g, "");
    }
</script>

<input type="text" name="amount" value="N50,000.00 NGN" />
<input type="button" value="submit" onclick="doWork();">

第一行删除除数字和小数点之外的所有字符。

第二个,删除所有小数点和它们右边的任何数字。

不过,使用parseInt和toFixed可能更好:

代码语言:javascript
复制
<script type="text/javascript" language="javascript">

    function doWork() {
        var amount = document.getElementsByName('amount');
        amount[0].value = parseInt(amount[0].value.replace(/[^0-9.]/g, "")).toFixed(0);
    }
</script>

<input type="text" name="amount" value="N50,000.00 NGN" />
<input type="button" value="submit" onclick="doWork();">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11102632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档