正则表达式:用数字替换用户定义的格式?

时间:2009-08-31 04:51:10

标签: php regex

我想替换像...这样的用户定义格式

  

ABC - #### - 09

  

ABC-0023-09

应该决定多少'#'签到格式,以及要替换的默认值的长度(在这种情况下为23)。

有没有正则表达式模式可以做到这一点?

...谢谢

2 个答案:

答案 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);
}