我想替换像...这样的用户定义格式
ABC - #### - 09
到
ABC-0023-09
应该决定多少'#'签到格式,以及要替换的默认值的长度(在这种情况下为23)。
有没有正则表达式模式可以做到这一点?
...谢谢
答案 0 :(得分:2)
这个怎么样?
$num = 23;
$format = 'ABC-####-09';
print preg_replace('/(#+)/e', 'str_pad($num, strlen("$1"), 0, STR_PAD_LEFT)', $format);
答案 1 :(得分:2)
这应该适用于Javascript:
function user_str_replace {
var match = user_input.match(/#+/);
var length = match.length;
var str = your_number.toString();
var newStr = "";
for (var i = 0; i < length - str.length; i ++) {
newStr = "0" + newStr;
}
newStr = newStr + str;
return (newStr);
}