简单说一下需求啊,就是我现在有一个文本框,我需要从excel上直接粘单号到这上面,所以要求是纯数字,但是从excel上粘过来的数据会带换行符,我需要一个能识别纯数字加换行符的正则,在网上找半天没找到。
无
网上找了一圈没找到
你的目的验证 ,一句话就也行吧,js没法多行匹配再验证,所以你在网上找不到,你看这个能不能满足你的要求
function test(data) {
return data.split('\n').every(item => /^\d*$/.test(item));
}
let data = 'aaaa bbbb ccc fadfs \n fasdfs\nsdafsaf\n'
console.log(data)
console.log(test(data))
data = '123456 \n 2222\n4444\n'
console.log(data)
console.log(test(data))
data = '123456\n2222\n4444\n'
console.log(data)
console.log(test(data))
组件设置type为数字不行吗
首先你的需求是 想判断从excel上粘过来的数据 是否符合纯数字,然后给出提示?还是说把excel上粘过来的数据的格式化,只保留数字?
判断是否是纯数字: /^\d{1,}$/ /^\d{1,}$/.test(123) // true
把数据摘出来拼成纯数字
let str = '1234455566dfasdfasd32324234'
function getNumber(str) {
let newStr = ''
for(let i=0;i<str.length;i++) {
if(/^\d{1,}$/.test(str[i]) ) {
newStr+=str[i]
continue
}
}
return newStr
}
getNumber(str)
建议最好从源头修正,在excel中使用自动换行替换掉alt+enter软回车。
在excel中应该是有字段使用alt+enter做了软回车,赋值到外部显示数据中包含了一个回车(char(10))。
下图中56为单元自动换行,789是alt+enter软换行,复制粘到其它应用是下面结果,56正常,789有换行。
1234567890123456
789