我写了一个正则表达式
this.value.replace(/\s/g, '').replace(/\W/g, '').replace(/[^0-9a-fA-F]/g, '').replace(/([a-f0-9]{2})(?=[a-f0-9])/g, "$1" + "-");
实现了每输入两个十六进制字符后加一个"-",如图1
正常输入没问题,但是要是从txt文本中复制这串字符粘贴进input框,就会出现图2的错误
请教各位大神怎么解决粘贴时出现的问题
我写了一个正则表达式
this.value.replace(/\s/g, '').replace(/\W/g, '').replace(/[^0-9a-fA-F]/g, '').replace(/([a-f0-9]{2})(?=[a-f0-9])/g, "$1" + "-");
实现了每输入两个十六进制字符后加一个"-",如图1
正常输入没问题,但是要是从txt文本中复制这串字符粘贴进input框,就会出现图2的错误
请教各位大神怎么解决粘贴时出现的问题
这个应该不是你粘贴的问题,应该是你正则匹配的问题
你可以在console执行下这段代码
你会发现结果就是
12-34EDF56-7A8
,因为你正则中只匹配了小写a-f,没有匹配大写的A-F,所以并没有达到你想要的目的,你可以在最后一次替换中忽略大小写去匹配就可以了