我需要正则表达式以不允许字段中仅包含空格(用户不应在字段中仅输入空格),但可以允许完全空白的字段,并且还可以允许字符串之间使用空格。
例如,如果我输入诸如“ This is a test”或“ testing”之类的字符串,则正则表达式应通过验证。另外,如果我在该字段中未输入任何内容,则应通过验证。如果我仅输入空格,它将失败。
我尝试了以下提到的方法,但是它们失败了。
1)^ [^-\ s] [a-zA-Z0-9_ \ s-] + $-不允许我输入介于两者之间的空格
2)^ [^-\ s] [\ w \ s-] + $-不允许我输入字符串
字符串开头是否允许空格?
如果是这样,那么类似的事情应该起作用:
^$|.*\S+.*
Run Code Online (Sandbox Code Playgroud)
否则,这应该可以解决问题:
^$|^\S+.*
Run Code Online (Sandbox Code Playgroud)
我将在不带空格的情况下解释该版本,因为另一个只是该版本的稍微扩展。
首先,我们检查String是否为空^$。这在此处的另一个问题中进行了说明,该正则表达式与模式匹配,或者为空字符串。
^ 标记我们要检查匹配项的字符串的开头。
\S+检查非空白字符。在+确保,有需要成为他们中的至少一个或多个。这包括空格,制表符,换行符等。
.* 匹配任何字符(以点表示)和任意数量的字符,或不匹配(以*表示)。
所有这些都假定您需要匹配整个字符串。如果不是这种情况,可以将表达式缩短为:
^$|\S+
Run Code Online (Sandbox Code Playgroud)
要么
^$|^\S+
Run Code Online (Sandbox Code Playgroud)
如果用户输入的内容与第一个表达式匹配,那么您将知道他输入的字符串包含非空格或空字符。如果它与第二个表达式匹配,则您还要知道它以非空格字符开头。
这些表达式当然只是许多可能表达式中的两个。我选择它们是因为它们易于阅读和解释(至少在我看来)。
| 归档时间: |
|
| 查看次数: |
511 次 |
| 最近记录: |