javascript - 如何在正则表达式中制作格式 ABC-1234

标签 javascript php regex

我已经使用正则表达式完成了格式化:

<p class="phone">2124771000</p>
 $(".phone").text(function(i, text) {
        text = text.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/, "$1-$2-$3");
        return text;
    });

使用上面的示例,我可以转换 212-477-1000:

<p class="phone">ABC1234</p>

现在我想使用上面的文本制作 ABC-1234 字符串。

测试环境:http://jsfiddle.net/Xxk3F/4237/

最佳答案

如果您想在 1 个正则表达式中捕获两者..

您可以使用任一表达式 |

例如。

/^(\d{3})(\d{3})(\d{4})|([A-Z]{3})(\d{4})$/

function replacer(m, p1,p2,p3, p4,p5) {
  if (p1) return [p1,p2,p3].join('-')
  else return [p4,p5].join('-');
}

$(".phone").text(function(i, text) {
  text = text.replace(/^(\d{3})(\d{3})(\d{4})|([A-Z]{3})(\d{4})$/, replacer);
  return text;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="phone">ABC1234</p>
<p class="phone">1231231234</p>
<p class="phone">XYZ2345</p>
<p class="phone">9999999999</p>

关于javascript - 如何在正则表达式中制作格式 ABC-1234,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46115305/

相关文章:

php - 将空白(空)字段添加到 mysql 表

php - 数据库中的 utf8 - 在 php.ini 中设置 default_charset

Python正则表达式不一致

regex - Powershell 和正则表达式从文件中提取多个数据点

javascript - Socket.IO - 如何更改客户端的超时值选项?

javascript - 复杂的javascript条件表达式

javascript - 如何通过在javascript中比较它们来仅获取数组中的特定元素?

php - Symfony 默认 Controller 白页

c# - 用于在字符串中查找 URL 的正则表达式

javascript - 在 Javascript 中分析异步函数