我一直在到处搜索,但一直找不到我想要的东西。
我有一个html表单,其中填充了我们清单中的Mac地址,因此输入到输入字段中的字符串将如下所示:
A1:A2:A3:A4:A5:A6
我正在尝试编写一个脚本来删除:
字符以及任何空格。这样,当输入时,输出将是:
A1A2A3A4A5A6
这是我到目前为止所拥有的:
<input type="text" id="macaddress" onChange="removeChar();WriteLog();" />
然后在我的脚本中有:
function removeChar() {
var a = document.getElementById("macaddress").value;
a = a.replace(/: /g, '');
document.getElementById.innerHTML = a;
}
我没有遇到任何JavaScript错误,但是什么也没发生。
我还有另一个脚本,可将字段的值提取到工作日志中,该日志是另一个函数WriteLog()
。
基本上,我想删除:
,然后通过第二个函数将新值拉到日志中。
答案 0 :(得分:3)
问题规范说,您要删除:
和:
上的空格。将正则表达式中的空间设置为可选:
a = a.replace(/:( )?/g, '');
但是您还需要考虑前面的空格:
a = a.replace(/( )?:( )?/g, '');
我也会修剪初始字符串(只是一个好习惯)
a = a.trim().replace(/( )?:( )?/g, '');
最后,我不确定此行的作用:
document.getElementById.innerHTML = a;
,但该行将引发错误。删除它。
答案 1 :(得分:0)
如果您只想保留数字和字母,可以使用此
a.replace(/[^a-zA-Z0-9]/g, '');
基本上用空字符串替换非a-z或A-Z或0-9的所有内容。
是解释正则表达式并对其进行测试的一个很好的工具。这行document.getElementById.innerHTML = a;
也应修复,您可能表示类似document.getElementById('some-elements-id').innerHTML = a;
答案 2 :(得分:0)
只需从字符串中删除冒号和空格即可
str = str.replace(/[:\s]/g, '');
答案 3 :(得分:0)
HTML
<input type="text" id="macaddress"/>
<button onclick="removeChar()">Click me!</button>
JS
function removeChar() {
var a = document.getElementById("macaddress").value.trim();
a = a.split('');
a.forEach(function (character, index) {
if (character === ':') {
a.splice(index, 1);
}
});
a = a.join('');
document.getElementById("macaddress").value = a;
}
答案 4 :(得分:0)
您的Regex搜索“冒号后紧跟空格”。
如果在它们之间添加管道:/:| /
,它将以任何顺序搜索所有冒号和/或空格。
演示:
function removeChar() {
var a = document.getElementById("macaddress").value;
a = a.replace(/:| /g, '');
document.getElementById("result").innerHTML = a;
}
<input type="text" id="macaddress" onChange="removeChar();" />
<div id="result"></div>