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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Javascript Regex允许字母数字、空格和一些特殊字符_Javascript_Regex - Fatal编程技术网

Javascript Regex允许字母数字、空格和一些特殊字符

Javascript Regex允许字母数字、空格和一些特殊字符,javascript,regex,Javascript,Regex,我有这个^[a-zA-Z0-9@&$]*$,但在少数情况下不适合我 如果有人打字 仅由数字组成的字符串(例如,1234567) 以特殊字符开头的字符串(例如&123abc) 需要被拒绝。请注意,一个特殊字符可以在中间和结尾。 可以用下面的正则表达式< /p>进行。 ^(?!\d+$)\w+\S+ 查看演示您似乎需要避免匹配仅由数字组成的字符串,并确保字符串以字母数字开头。我假设您还需要能够匹配空字符串(原始正则表达式匹配空字符串) 这就是我建议的原因 ^(?!\d+$)(?:[a-zA-Z

我有这个
^[a-zA-Z0-9@&$]*$
,但在少数情况下不适合我

如果有人打字

  • 仅由数字组成的字符串(例如,
    1234567
  • 以特殊字符开头的字符串(例如
    &123abc

需要被拒绝。请注意,一个特殊字符可以在中间和结尾。

可以用下面的正则表达式< /p>进行。
^(?!\d+$)\w+\S+

查看演示

您似乎需要避免匹配仅由数字组成的字符串,并确保字符串以字母数字开头。我假设您还需要能够匹配空字符串(原始正则表达式匹配空字符串)

这就是我建议的原因

^(?!\d+$)(?:[a-zA-Z0-9][a-zA-Z0-9 @&$]*)?$

详细信息

  • ^
    -字符串的开头
  • (?!\d+$)
    -如果字符串仅为数字,则匹配失败的负前瞻
  • (?:[a-zA-Z0-9][a-zA-Z0-9@&$]*)?
    -以下可选序列:
    • [a-zA-Z0-9]
      -数字或字母
    • [a-zA-Z0-9@&$]*
      -0+数字、字母、空格、
      @
      &
      $
      字符
  • $
    -字符串结束

能否准确列出哪些条件需要拒绝以及拒绝原因?请尝试。谢谢,请将其作为您的答案,以便我可以将其标记为接受答案。模式是否应接受空字符串?如果没有,也尝试一下。不太清楚(此模式至少需要一个字符)。@Sharpeye500我添加了一个带有解释和推理的答案。如果我想排除一些字符并包括一些特殊字符,我如何排除一些字符,以便包括在内,我可以从您的正则表达式中看到。@Sharpeye500:对不起,你是什么意思?如果不想匹配字符,首先不要将其添加到字符类中。如果字符之间有“.”(句点),则当前正则表达式接受它。例如,“Test.Work”,如果我需要它被拒绝“,”我如何在正则表达式中排除。@Sharpeye500:,如果我键入一个单词,说“Sharpeye500@”,它是有效的和正确的,如果我键入“Sharpe.Eye500”,其中有一个点,它应该是无效的,但是在正则表达式中,它表示有效,当单词中有一个点时,我想说它是无效的。