如何验证格式字符串(How to validate format string)

2019-10-17 06:49发布

我们有很多在我们的资源文件的字符串包含格式.eg

“{0}已经移动到{1}”

这些字符串是由应用程序传递给的String.Format(),有时译者乱了“格式标记”,所以我希望能够找到/写一个工具来检查,在资源文件中的所有字符串具有有效的格式。

我知道每个键传递给的String.format,这样可以喂到验证以及args来的数字。

因此,从检查的“{”匹配“}”与众不同的是有一个简单的方法来找到在格式字符串错误最多?

(我使用.NET,该检查当然会被作为构建过程的一部分完成)

Answer 1:

这听起来像一个典型的单元测试场景。 可以带动一个自动构建/单元测试断源代码提交触发这些? 单元测试将简单地检查每个格式字符串仍然是语法分析。



Answer 2:

它看起来像您验证在表达式的字符串,所以你应该使用正则表达式看链接文本



Answer 3:

我想出了一个简单的解决方案,给出了一个合理的结果,我知道说法在格式语句的数量,但没有的参数的类型。 然而,大多数参数都是字符串。

所以

if (numberOfArguments == 3)
{
  try
  {
    String.Format(theTranslatorString, "", "", "")
  }
  catch
  {
     // tell the translator there is a problem with the string format
  }
}

当然,这将不被写入一个“如果”为现实生活中的参数每个号码。



文章来源: How to validate format string