.match(/^\d*(\.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字0,4用变量来代替?
.match(/^\d*(.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字4用变量来代替,希望大佬们亲测下
let reg1 = new RegExp(\D(\d*)(\.?)(\d{0, ${numD}})\d*
)
let reg2 = new RegExp(^\d*(\.?\d{0, ${numD}})
, "g")[0] || ""。
reg1应该写的是对的,但reg2这老是各种错误尤其是[0] || ""这块
最终目的是输入的时候最多只能输入小数点后面4位,图片里是好的,但是想简单封装下,所以想将4变成变量形式.
我这写的也没问题啊,又报这个错
回答:
var regItem='\\d{0,4}';var reg=new RegExp(`\\D*(\\d*)(\\.?)(${regItem})\\d*`);
''.replace(reg,'');
用RegExp去处理就可以了
回答:
不使用字面量创建正则,采用new
创建正则
const num1 = 0const num2 = 4
const reg = new RegExp(`\D(\d)(.?)(\d${num1,num2})\d*`)
''.replace(reg,'')
跟上面的回答是一样的
regexp文档说明:https://developer.mozilla.org...
reg2报错的原因是您这边使用错误let reg2 = new RegExp(^\d*(\.?\d{0, ${numD}}), "g")
,^\d*(\.?\d{0, ${numD}}
这个应该使用``包裹:
然后[0]||""不能直接放正则后面,应该这么用:
const numD = 4;const reg2 = new RegExp(`^\d*(\.?\d{0, ${numD}})`, "g")
' '.match(reg2)[0]||""
这样就不会报错了
1.报错的原因是因为mathch方法前面的正则写的有问题,导致match(regs)正则匹配不上,match方法返回null
,然后null[0]
报错
2.目的是输入的时候最多只能输入小数点后面4位,现在您这种方式搞麻烦了
首先限制输入框仅允许输入数字
this.number = Number(this.number).toFixed(4)
这样即可达成目的,用正则相对变复杂啦
以上是 .match(/^\d*(\.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字0,4用变量来代替? 的全部内容, 来源链接: utcz.com/p/933513.html