Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何检查没有空格的输入字符串&;除两个特殊字符外的特殊字符(即&;和Ñ;)_Regex_Jquery Plugins - Fatal编程技术网

Regex 如何检查没有空格的输入字符串&;除两个特殊字符外的特殊字符(即&;和Ñ;)

Regex 如何检查没有空格的输入字符串&;除两个特殊字符外的特殊字符(即&;和Ñ;),regex,jquery-plugins,Regex,Jquery Plugins,我正在尝试验证输入字符串(可以复制并粘贴到文本框中)。 输入的输入应包含一个或多个字母、数字和另外两个特殊字符(&和洇),但不包含嵌入空格 注意:字母字符必须存在,但数字&这两个特殊字符可能存在,也可能不存在,以创建有效的输入 我使用Jquery进行客户端验证 替代方法: 如果有人能帮助我如何检测任何特殊字符和空格的出现,除了输入字符串中的“&”和“ñ”,那么我的问题也可以解决 如果只允许大写字母、数字和&或作为有效字符,请使用 ^(?=.*[A-Z])[A-Z\d&Ñ]*$ 详细

我正在尝试验证
输入字符串
(可以复制并粘贴到文本框中)。 输入的输入应包含一个或多个
字母
、数字和另外两个特殊字符(
&
),但不包含嵌入空格

注意:字母字符必须存在,但数字&这两个特殊字符可能存在,也可能不存在,以创建有效的输入

我使用Jquery进行客户端验证

  • 替代方法:

    如果有人能帮助我如何检测任何特殊字符和空格的出现,除了输入字符串中的“&”和“ñ”,那么我的问题也可以解决


如果只允许大写字母、数字和
&
作为有效字符,请使用

^(?=.*[A-Z])[A-Z\d&Ñ]*$
详细正则表达式:

^                   # anchor the search at the start of the string
(?=.*[A-Z])         # assert that there is at least one letter A-Z in the string
[A-Z\d&Ñ]*       # match any number of allowed characters
$                   # anchor the search at the end of the string
不过,您可能希望强制使用最小长度,因为当前字符串
a
将是有效的输入。例如,
^(?=.[A-Z])[A-Z\d&ñ]{8,}$
将确保最小长度为8

如果您想要一个正则表达式,该正则表达式将在输入包含不允许的字符时匹配,那么您可以使用

[^A-Z\d&Ñ]

但是,您还需要第二个正则表达式来确保输入中至少有一个字母。我认为第一种方法更具可读性,即使在JavaScript中不能使用详细/注释正则表达式。

检测这种情况下不允许的内容也不是一个好主意。您提到可以检测除这两个(ñ,&)和空格之外的特殊字符。标签呢?新行字符呢?非拉丁字符呢?如果你确信这种情况永远不会发生,那么继续检测特殊字符。如果在以下正则表达式中进行了匹配,则输入无效:


[\~!\@\$\%\^\&*()\+\=-[]{}\\\\\\\\\'\'\“\\:\/\?。>\,\实际上我已经用
Jquery字母数字
插件完成了验证

i、 e
“$('#txtId')。字母数字({allow:“&ñ”}”);”


说明:这允许所有
字母数字
字符并限制所有其他字符(已寻址的特殊字符)。在允许部分,我可以放置允许的特殊字符。

再次阅读您的问题时,我感到困惑:在标题中,您说您想验证字符串是否包含除
&
之外的特殊字符;在问题文本中,这两个字符似乎是唯一允许的特殊字符-是哪一个?我是使用Java脚本和Jquery在客户端输入中进行验证。是的,这两个字符&和ñ只是我输入字符串中的alloweed特殊字符。谢谢Tim,但这看起来有点复杂。您是否可以帮助我使用我上面提到的替代方法?即:我们如何检测任何输入字符串中除“&”和“ñ”之外的任何特殊字符和空格的出现。没有比您的规则更复杂:)替代方法:“我们如何检测任何输入字符串中除“&”和“ñ”之外的任何特殊字符和空格的出现“。这是如何减少复杂性并确保至少有一个字母的?实际上,我已经用一个regex exp和一个Jquery字母数字插件完成了所有验证,即“$('#txtId')。字母数字({allow:“&ñ”}”);”。现在我可以限制字符,但用户仍然可以复制粘贴任何字符集。因此,我计划再次验证输入的文本,只是检查是否有任何特殊字符(除“&”和“ñ”之外)或者由用户粘贴空格。希望这将澄清该场景。谢谢上坡。我已经完成了其他场景,只需要最后一件事。我的输入字符串只允许字母数字(大写A到Z以及0到9)和两个特殊字符,即‘&’和‘‘’。两者之间不应该有空格。更好的是!正则表达式应该是:^([A-Z]+[^A-Z\d&ñ])|([^A-Z\d&ñ][A-Z]+)|([^A-Z\d&ñ][A-Z]+[^A-Z\d&ñ])$^[A-Z0-9&ñ]+$是我要查找的正确的注册表表达式:Regex只检查大写字母,两个特殊字符(和)&之间没有空格。无论如何,感谢您耐心地讨论利弊。事实上,根据您的描述,除非我理解不清楚,否则它是不正确的。如果您至少需要一个字母字符,则我的正则表达式是正确的。如果您至少需要一个字符,但它可以是任何内容,包括数字和2个特殊字符,则您的字符是正确的。