js 在input输入框中输入:3-10,或者3~10,如何获取这中间的整数值?

例如:我在输入框中输入1,2,3-10
js   在input输入框中输入:3-10,或者3~10,如何获取这中间的整数值?
如何得到:1,2,3,4,5,6,7,8,9,10


回答:

正则替换

// 这里用字符串演示,实际里就是input.value

'1,2,3-10'.replace(/(\d+)[-~](\d+)/g,(_,$1,$2) => {

const start = +$1;

const end = +$2;

if(start>end) return $1;

return Array.from({length: end-start+1}, (_,i) => start+i).join(',')

})


回答:

 // 题目中没有其他干扰条件,按用户正常输入考虑:

const str = '3-10'

function test(str) {

const input = str.split('-')

const startIndex = parseInt(input[0], 10)

const endIndex = parseInt(input[1], 10)

return new Array(endIndex - startIndex + 1).fill(0).map((v, i) => startIndex + i)

}

console.log(test(str));


回答:

// => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

console.log(demo('1,2,3-10'))

function demo (data) {

const list = data.split(',')

const result = list.map(function (item) {

item = item.split('-')

if(item.length === 1) {

return item

} else {

const arr = []

for(let a = item[0]*1; a<=item[1]*1; a++) {

arr.push(a)

}

return arr

}

})

return result.flat().map(c => c*1)

}


回答:

let str = '1,2,3-10'

getData(str)

function getData(str) {

const tail = str.split('-')

const min = str.indexOf(',') !== -1 && str.split(',')[0] || tail[0]

const max = tail[1]

let res = ''

for (let i = Number(min); i<=Number(max); i++) {

res += i + (i<max && ',')

}

return res

}

以上是 js 在input输入框中输入:3-10,或者3~10,如何获取这中间的整数值? 的全部内容, 来源链接: utcz.com/p/936859.html

回到顶部