验证 属性 名称(检查非法字符)
Validate property name (checking for illegal characters)
出于编组目的和使用本机自动类型构建 API,我需要在运行时验证某些结构的字段名称。本机端的命名规则与 C# 相同(无空格,无特殊字符,如 &、é、*、.).
是否有标准的正则表达式模式?
注意:作为解决方法,我正在考虑围绕 DeclareProperty
in TypeBuilder
构建静态方法,仅用于名称验证目的。
那么您是要删除非法字符(黑名单)还是只检查标识符是否有效?对于有效字符,您可以使用类似:
// Match an identifier - Matches "type1" but not &type1" or "#define".
\b(_\w+|[\w-[0-9_]]\w*)\b
这里是 MSDN reference(虽然它是 Visual Studio)。
这是 Regex Patterns reference.
到目前为止我想要的应该足够了:
^[a-zA-Z]+[a-zA-Z0-9\_]*$
出于编组目的和使用本机自动类型构建 API,我需要在运行时验证某些结构的字段名称。本机端的命名规则与 C# 相同(无空格,无特殊字符,如 &、é、*、.).
是否有标准的正则表达式模式?
注意:作为解决方法,我正在考虑围绕 DeclareProperty
in TypeBuilder
构建静态方法,仅用于名称验证目的。
那么您是要删除非法字符(黑名单)还是只检查标识符是否有效?对于有效字符,您可以使用类似:
// Match an identifier - Matches "type1" but not &type1" or "#define".
\b(_\w+|[\w-[0-9_]]\w*)\b
这里是 MSDN reference(虽然它是 Visual Studio)。 这是 Regex Patterns reference.
到目前为止我想要的应该足够了:
^[a-zA-Z]+[a-zA-Z0-9\_]*$