\d+.\d+

我在使用中遇到了问题 match(/.{1,3}/gi)match(\/d{1,3}/g) 将一个字符串分割成3位数的数组。

if(me.iselement(finppnr.inpprice)) {
    finppnr.inpprice.addEventListener("keyup", function() {
        let raw, ret;
        raw = finppnr.inpprice.value.split(".");
        raw = raw.join("").toString();
        if(raw.length > 0) {
            ret = raw.split("").reverse().join("").match(/.{1,3}/gi);
            ret = ret.join(".").split("").reverse().join("");
        }
        finppnr.inpprice.value = ret;
    });
}

这里是HTML。

<div class="formcol">
    <div class="label">Item Price</div>
    <div class="field">
        <input class="inpprice finp" type="number">
    </div>
</div>

我输入的所有内容 finppnr.inpprice 再大 1.000.000 将返回这样的警告

指定的值 “1.231.231 “不是一个有效的数字,该值必须与以下正则表达式匹配:-? 该值必须与以下正则表达式相匹配:-?(d/d+.{1,3}gi)或match(/d{1,3}g)将一个字符串分割成3个数字数组。if(me.istelement(finppnr.inpprice)) { finppnr.inpprice.addEventListener(“keyup”, function() {…

你的问题不是在regex上,而是你使用了一个叫做 finppnr.inpprice.value 输入,并给它一个值,如 '',

ret = "52990000".split("").reverse().join("").match(/.{1,3}/gi);
ret = ret.join(".").split("").reverse().join("");

这根本不是一个有效数字

!

解决方案:

所以,像这样的数字 number, 52.990.000、等都是无效的,输入将无法解释,从而呈现。而像999.999这样的数字,则。

有效,因为 , 这里只是作为一个小数点。.总之,你的regex是没有问题的,你的问题是使用数字输入。52,990,000一个快速的解决方法是换成 52,990.999 输入,它可以显示任意符号。

如果您决定保留 输入,你将不得不找到另一种解决方案,这可能包括定位一个 叠加 . 输入,这样它就能以你期望的方式显示该值。

type="text"

给TA打赏
共{{data.count}}人
人已打赏
解决方案

更新后的JSON文件在运行时无法读取

2022-5-12 12:00:17

解决方案

在调整屏幕大小时,当移动到溢出按钮时,工具栏中的SplitButton不会触发点击处理程序。

2022-5-12 12:00:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索