Javascript 一个为数字类型输入动态生成步骤属性的线性程序?
我有一个输入类型Javascript 一个为数字类型输入动态生成步骤属性的线性程序?,javascript,html,Javascript,Html,我有一个输入类型number: 没有步骤属性,但用户可以开始输入数字,如“21”、“1.12”、“0.00123”,在keydup上,脚本将确定正确的步骤。例如,21等于1,1.12等于0.01,0.00123等于0.00001,依此类推 我试过这个: input.addEventListener('keyup',(e)=>{ 常量值=input.value; if(value.split('.')。length==1){ input.step=1 回来 } 让精度=值。拆分('.')[1
number
:
没有步骤
属性,但用户可以开始输入数字,如“21”、“1.12”、“0.00123”,在keydup上,脚本将确定正确的步骤
。例如,21等于1,1.12等于0.01,0.00123等于0.00001,依此类推
我试过这个:
input.addEventListener('keyup',(e)=>{
常量值=input.value;
if(value.split('.')。length==1){
input.step=1
回来
}
让精度=值。拆分('.')[1]。替换(/。/g,'0'))
精度=`0.${precision.substring(0,precision.length-1)}1`
log(`precision:${precision}`)
input.step=精度
})
一个“一行”可以是对替换的双重调用:
input.addEventListener('keyup',(e)=>
input.step=input.value.replace(/[^.]/g,“0”)。replace(/\d$/,“1”)
);代码>
一个“一行”可以是对替换的双重调用:
input.addEventListener('keyup',(e)=>
input.step=input.value.replace(/[^.]/g,“0”)。replace(/\d$/,“1”)
);代码>
这应该可以做到:
document.querySelector('input')。addEventListener('keyup',(e)=>{
console.log(`precision:${1/Math.pow(10,input.value.split('.')[1]?.length±0)}`)
})
这应该可以做到:
document.querySelector('input')。addEventListener('keyup',(e)=>{
console.log(`precision:${1/Math.pow(10,input.value.split('.')[1]?.length±0)}`)
})
不是一行,但非常清晰易读:
const fractionalPartLength = input.value.split('.')[1] && input.value.split('.')[1].length || 0
const precision = 10**(0-fractionalPartLength)
不是一行,但非常清晰易读:
const fractionalPartLength = input.value.split('.')[1] && input.value.split('.')[1].length || 0
const precision = 10**(0-fractionalPartLength)
您只需使用以下两种方法即可优化并降低脚本的复杂性:
input.addEventListener('keyup',(e)=>{
input.step=input.value.replace(/\d/g,'0')。replace(/\d$/,'1');
});代码>
只需使用以下两种方法,即可优化并降低脚本的复杂性:
input.addEventListener('keyup',(e)=>{
input.step=input.value.replace(/\d/g,'0')。replace(/\d$/,'1');
});代码>
为什么你认为你需要一行程序?你试图通过重构代码来完成什么?我并不真的需要一行程序,但这类问题带来了很多关于语言本身的知识。为了保持一致,当我输入9000时,这一步不应该是1000吗?。希望能有帮助。你为什么认为你需要一行程序?你试图通过重构代码来实现什么?我真的不需要一行程序,但这类问题带来了很多关于语言本身的知识。为了保持一致,当我输入9000时,这一步不应该是1000吗?。希望有帮助。?
是在[1]
类型脚本键入之后吗?不是,这是标准JS功能,是?
是在[1]
类型脚本键入之后吗?不是,这是标准JS功能,