Asp.net 正则表达式,以禁止字符串中间的两个连续空白。
我需要一个正则表达式来满足以下要求:Asp.net 正则表达式,以禁止字符串中间的两个连续空白。,asp.net,regex,web-user-controls,Asp.net,Regex,Web User Controls,我需要一个正则表达式来满足以下要求: 只允许使用字母、句点和空格 字符串的开头和结尾没有空格 字符串中间的空白是可以的,但不是两个连续的空白空间。 匹配项: "Hello world." "Hello World. This is ok." " Hello World. " "Hello world 123." "Hello world." 不匹配: " Hello World. " "Hello world 123." "Hello world." 这在我的情况下奏效了 &l
- 只允许使用字母、句点和空格李>
- 字符串的开头和结尾没有空格李>
字符串中间的空白是可以的,但不是两个连续的空白空间。<李>
"Hello world."
"Hello World. This is ok."
" Hello World. "
"Hello world 123."
"Hello world."
不匹配:
" Hello World. "
"Hello world 123."
"Hello world."
这在我的情况下奏效了
<asp:RegularExpressionValidator ID="revDescription" runat="server"
ControlToValidate="taDescription" Display="Dynamic" ErrorMessage="Invalid Description."
Text=" "
ValidationExpression="^(?i)(?![ ])(?!.*[ ]{2})(?!.*[ ]$)[A-Z. ]{8,20}$"></asp:RegularExpressionValidator>
这里有一个Python解决方案,使用和确保遵循空格规则:
regex = re.compile(
"""^ # Start of string
(?![ ]) # Assert no space at the start
(?!.*[ ]{2}) # Assert no two spaces in the middle
(?!.*[ ]$) # Assert no space at the end
[A-Z. ]{8,20} # Match 8-20 ASCII letters, dots or spaces
$ # End of string""",
re.IGNORECASE | re.VERBOSE)
我建议检查正则表达式之外的长度,否则表达式可能会变得太复杂 下面是JavaScript中的一个示例代码段:
if (str.length < 8 || str.length > 20)
return false;
if (str.match(/(^\s|\s$|\s\s|[^A-Za-z.\s])/))
return false;
更新:如果您需要将所有内容都放在一个表达式中,恐怕您必须省去对连续空格的检查,因为此限制使语言上下文敏感,因此正则表达式无法对其进行检查。您可以检查以字母开头的字符串,后跟6到18个字母、点或空格,并以字母结尾:
[A-Z][A-Z. ]{6,18}[A-Z]
嗨,欢迎来到StackOverflow!首先,如果您熟悉编辑器的格式选项,我认为这将是一个好主意-您所提出的问题并不能真正反映您的需求。这次我会帮你做的,这样你就可以看到它是如何工作的。第二,你还没有真正问过一个问题——你陷入了问题的哪一部分?第三,你使用哪种语言?所有这些主题都包含在帮助页面和regex常见问题解答中。我一定会尽快学习。感谢您的帮助:)@Tim PietzckerI我正在使用asp.net用户控件正则表达式验证程序,如下所示。请你给我引路好吗。您建议的正则表达式不起作用。@AfnanAhmad:您没有使正则表达式不区分大小写。在正则表达式的开头添加
(?i)
。非常感谢您,我已经完成了。我已经做了以下修改。我真的很感谢你。我找了很多,但最后你给了我答案。超级:)我正在使用asp.net正则表达式验证程序。我已经根据你的建议更改了代码,但运气不好。这是代码。我已经留下了最小值和最大值验证。我将通过将Maxlength应用于textbox来实现这一点。现在我只想在开始时不允许空白,而不允许中间有两个连续的白色空间。不匹配=(Hello world)=(Hello world)连续的空格是我在开始空格和结束空格时遇到的主要问题,就像这样^[a-zA-Z][\.\s\a-zA-Z]*[a-zA-Z\.]$我只是不想让用户进入连续空格。