PHP如何将14位整数格式化为带横杠分隔的指定模板字符串
14位固定长度整数的横杠格式化实现方案
核心思路
因为位数固定为14位,分割规则为按4位-4位-4位-2位分段,优先用正则分组捕获+替换,或者批量切片拼接的方式,避免多次手动调用substr硬编码,代码可读性和可维护性更高。
常用语言实现示例
JavaScript
正则替换方案:
const originNum = 98000011601815; const formattedStr = String(originNum).replace(/^(\d{4})(\d{4})(\d{4})(\d{2})$/, '$1-$2-$3-$4'); // 输出结果:9800-0011-6018-15
更简化的正则切割方案:
const formattedStr = String(originNum).match(/\d{1,4}/g).join('-');
Python
正则实现:
import re origin_num = 98000011601815 formatted_str = re.sub(r'^(\d{4})(\d{4})(\d{4})(\d{2})$', r'\1-\2-\3-\4', str(origin_num))
切片拼接方案(可读性最高):
s = str(origin_num) formatted_str = f"{s[:4]}-{s[4:8]}-{s[8:12]}-{s[12:]}"
Java
long originNum = 98000011601815L; String formattedStr = String.valueOf(originNum).replaceAll("(\\d{4})(\\d{4})(\\d{4})(\\d{2})", "$1-$2-$3-$4");
注意事项
因为已经明确输入是固定14位整数,不需要做长度校验、非数字校验等边界处理,上述方案可以直接使用。
内容的提问来源于stack exchange,提问作者Mikael Diak
相关产品推荐
相关产品推荐

