我正在尝试编写一些js,这将允许我删除字符串中的任何冒号和破折号,然后在每4个字符之后添加一个句号,而不是在字符串的末尾添加句号。
例如,xx:xx-xx-xx-xx:xx就会变成xxxx.xxxx.xxxx
我在js方面不是最棒的,但我已经编写了一些代码,可以去掉冒号和破折号,但我现在有点坚持添加句号了。到目前为止,我拥有的是THis:
<form>
Input: <input type="text" id="mac" name="macAddress">
<button onclick="convert(); return false;">Convert</button>
<div id="outputDiv"></div>
</form>
<script type="text/javascript">
function convert() {
var mac = document.getElementById('mac').value;
var mac2 = mac.replace(/\:|-/g,"");
document.getElementById("outputDiv").innerHTML= mac2;
};
</script>我看了一下类似的话题,我发现我也许能把一些东西放在一起来增加句号,但我不知道如何阻止它在字符串的末尾添加一个。如果有人能给我指明正确的方向,我会非常感激的。
发布于 2013-12-10 10:49:33
试一试
mac2 = mac2.replace(/(.{4})(?!$)/g , '$1.');(. {4} ) .(点)是任何字符,{4}表示任何字符的精确4倍
(?!$)是不匹配的断言,后面跟着$,其中$是结束的。
/./g使用g使其成为全局替换
$1是第一个()中内容的反向引用。
发布于 2013-12-10 10:45:46
您可以使用负前瞻来避免将点放在字符串的末尾:
"xx:xx-xx-xx-xx:xx".replace(/[:-]/g,"").replace(/(.{4})(?!$)/g, "$1.")
// xxxx.xxxx.xxxx发布于 2013-12-10 10:47:51
试一试:
function convert(mac) {
mac = mac.replace(/\:|-/g,"");
mac = mac.replace(/(....)(?!$)/g, "$1.");
console.log(mac);
return mac;
}https://stackoverflow.com/questions/20492195
复制相似问题