2

我在 javascript 中创建一个字符串格式化程序,它使用反斜杠进行转义。创建格式化程序本身非常容易。我的问题是找到转义字符,并在格式化程序中进行转义。

此格式化程序将 .Net 格式化实现复制到 Javascript。基于这些注释:http: //msdn.microsoft.com/en-us/library/26etazsy

例如:

"####\\###".format(123456) == "123#456";

正则表达式一直存在问题,因为 JS 不支持正则表达式否定。

我发现我必须对几个循环(有时在其他循环中)进行处理,以解决转义问题。我已经让它工作了,但我正在寻找一个更优雅的,希望基于一个既定的模式。

这样做有既定的模式吗?

4

1 回答 1

0

执行此操作的内置方法是通过replaceValue 回调

function replacer(match, offset, fullstring)
  {
  return match.substr(-1);
  }

function mapper(match, offset, fullstring)
  {
  return offset;
  }

"####\\##\\#".replace(/#(?=#|$)/g, mapper).replace(/\\./g, replacer); //012#5#8
于 2013-11-27T02:11:24.687 回答