【发布时间】:2017-01-03 14:29:33
【问题描述】:
我有这个正则表达式^[a-zA-Z_ ,.'-]+$ 用于Name 验证,它工作正常。但问题是,允许使用撇号会引发一些问题。所以我在验证之前编码了撇号。
name = name.Replace("'", "'");
现在任何像john's doe 这样的有效名称看起来都像john's doe,它不能用当前的正则表达式进行验证。
现在我想要检查名称是否包含准确的' 以及有效的字符集。
注意:我不想将& 和; 添加到当前字符集,因为这将允许&; 作为有效名称。
【问题讨论】:
-
为什么不以正确的方式做呢?您的图案存储在哪里?在一些 XML 中?为什么不在 CData 块中使用它?
^([a-zA-Z_ ,.-]|')+$看起来对人和正则表达式引擎都不好。 -
允许使用撇号会导致什么问题?我想你可以这样做
^[a-zA-Z_ ,.-]+'[a-zA-Z_ ,.-]+$假设撇号永远不是第一个或最后一个字符。 -
我正在使用
sitecorecms 并且验证在服务器端运行。我不熟悉Cdata -
好的,
^([a-zA-Z_ ,.-]|')+$有效吗? -
它工作正常。谢谢。
标签: javascript c# regex validation