.match(/^\d*(\.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字0,4用变量来代替?

.match(/^\d*(.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字4用变量来代替 .match(/^\d*(\.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字0,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变成变量形式.
我这写的也没问题啊,又报这个错 .match(/^\d*(\.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字0,4用变量来代替?


回答:

var regItem='\\d{0,4}';

var reg=new RegExp(`\\D*(\\d*)(\\.?)(${regItem})\\d*`);

''.replace(reg,'');

用RegExp去处理就可以了


回答:

不使用字面量创建正则,采用new创建正则

const num1 = 0

const 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}}这个应该使用``包裹:
 .match(/^\d*(\.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字0,4用变量来代替?
然后[0]||""不能直接放正则后面,应该这么用:

const numD = 4;

const reg2 = new RegExp(`^\d*(\.?\d{0, ${numD}})`, "g")

' '.match(reg2)[0]||""

这样就不会报错了

1.报错的原因是因为mathch方法前面的正则写的有问题,导致match(regs)正则匹配不上,match方法返回null,然后null[0]报错
 .match(/^\d*(\.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字0,4用变量来代替?
2.目的是输入的时候最多只能输入小数点后面4位,现在您这种方式搞麻烦了
首先限制输入框仅允许输入数字

this.number = Number(this.number).toFixed(4)

 .match(/^\d*(\.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字0,4用变量来代替?
这样即可达成目的,用正则相对变复杂啦

以上是 .match(/^\d*(\.?\d{0,4})/g)[0] || '',如何将{0,4}里面的数字0,4用变量来代替? 的全部内容, 来源链接: utcz.com/p/933513.html

回到顶部