正则表达式需要在字符串开头匹配特殊字符

用户名

我需要对现有的正则表达式进行修改,以在字符串值的开头支持特殊字符。

我目前有这个表达:

/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d][A-Za-z\d!@#$%^&*()_+.]{7,63}$/

它接受介于8-64个字符之间的任何字符串,该字符具有至少1个数字,字母和以下特殊符号:!@#$%^&*()_ +。

如何在输入值的开头识别特殊字符?

要匹配的字符串:

.abc@1234
*abc@1234
abc@1234.
[email protected]

谢谢

维克多·史翠比维

您需要删除[A-Za-z\d]并替换{7,63}{8,64}

使用

^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d!@#$%^&*()_+.]{8,64}$

观看演示

也许,您还希望将其添加.到前瞻中,因此它也是必需的:

^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+.])[A-Za-z\d!@#$%^&*()_+.]{8,64}$
                                         ^

为确保特殊符号不会立即出现,请添加(?!.*[!@#$%^&*()_+.]{2}) 负数前瞻

^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+.])(?!.*[!@#$%^&*()_+.]{2})[A-Za-z\d!@#$%^&*()_+.]{8,64}$
                                            ^^^^^^^^^^^^^^^^^^^^^^^^

这个演示

请注意,这里的很多人都会对使用这么长的正则表达式的可维护性问题大喊大叫。您可以将条件拆分为单独的代码,也可以使用带注释的多行正则表达式:

var rx = RegExp("^" + // Start of string
               "(?=.*[a-zA-Z])" + // Require a letter
               "(?=.*\\d)" + // Require a digit
               "(?=.*[!@#$%^&*()_+])" + // Require a special symbol
               "(?!.*[!@#$%^&*()_+.]{2})" + // Disallow consecutive special symbols
               "[A-Za-z\\d!@#$%^&*()_+.]{8,64}" + // 8 to 64 symbols from the set
               "$");

var re = RegExp("^" + // Start of string
               "(?=.*[a-zA-Z])" + // Require a letter
               "(?=.*\\d)" + // Require a digit
               "(?=.*[!@#$%^&*()_+])" + // Require a special symbol
               "(?!.*[!@#$%^&*()_+.]{2})" + // Disallow consecutive special symbols
               "[A-Za-z\\d!@#$%^&*()_+.]{8,64}" + // 8 to 64 symbols from the set
               "$", "gm");

var str = '.abc@1234\n*abc@1234\nabc@1234.\[email protected]\n*abc@1234\nabc@1234.\[email protected]\na@b.#c123\na@__c1234';
while ((m = re.exec(str)) !== null) {
  document.body.innerHTML += m[0] + "<br/>";
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式:在开头或某些特殊字符后匹配字符串

来自分类Dev

正则表达式匹配字符串以@ 开头

来自分类Dev

如何使用正则表达式模式在字符串的开头或结尾限制特殊字符?

来自分类Dev

正则表达式以字符串开头但之后不包含特殊字符

来自分类Dev

正则表达式匹配带特殊字符或不带重音字符的字符串?

来自分类Dev

正则表达式匹配以字符开头和结尾的字符串

来自分类Dev

正则表达式:匹配字符(字符串开头除外)

来自分类Dev

如何在正则表达式中以特定字符开头的字符串匹配

来自分类Dev

正则表达式以匹配子字符串,但不能以某些字符开头

来自分类Dev

MySQL正则表达式在字符串的开头或结尾匹配括号字符

来自分类Dev

正则表达式匹配不应以特定字符开头或结尾的字符串

来自分类Dev

需要在函数内部使用正则表达式来匹配传递给它的字符串

来自分类Dev

正则表达式以匹配包含特殊字符的数字字符串

来自分类Dev

Perl:转义字符串中的特殊字符以匹配正则表达式

来自分类Dev

使用正则表达式匹配包含数字和特殊字符的字符串

来自分类Dev

不以/ *开头的字符串的正则表达式

来自分类Dev

Python正则表达式可匹配仅包含字母数字,'-'和'_'且不以任何特殊字符开头或结尾的字符的字符串

来自分类Dev

不要在javascript中使用正则表达式捕获匹配的字符串部分

来自分类Dev

Javascript正则表达式匹配以字母或数字开头的字符串

来自分类Dev

正则表达式用于不以点开头和/或结尾的匹配字符串

来自分类Dev

正则表达式匹配字符串开头但不包括

来自分类Dev

在python中用正则表达式匹配字符串的开头和结尾

来自分类Dev

Java正则表达式匹配空格或字符串开头

来自分类Dev

Python正则表达式匹配字符串或空格的开头

来自分类Dev

正则表达式-如果组以javascript中的字符串开头,则不匹配

来自分类Dev

正则表达式:匹配字符串是否以字母或数字开头,然后

来自分类Dev

仅当字符串不以'N'开头时才与模式匹配的正则表达式

来自分类Dev

正则表达式匹配字符串开头和行尾之间的模式

来自分类Dev

正则表达式,用于匹配以开头的字符串。#和正常

Related 相关文章

  1. 1

    正则表达式:在开头或某些特殊字符后匹配字符串

  2. 2

    正则表达式匹配字符串以@ 开头

  3. 3

    如何使用正则表达式模式在字符串的开头或结尾限制特殊字符?

  4. 4

    正则表达式以字符串开头但之后不包含特殊字符

  5. 5

    正则表达式匹配带特殊字符或不带重音字符的字符串?

  6. 6

    正则表达式匹配以字符开头和结尾的字符串

  7. 7

    正则表达式:匹配字符(字符串开头除外)

  8. 8

    如何在正则表达式中以特定字符开头的字符串匹配

  9. 9

    正则表达式以匹配子字符串,但不能以某些字符开头

  10. 10

    MySQL正则表达式在字符串的开头或结尾匹配括号字符

  11. 11

    正则表达式匹配不应以特定字符开头或结尾的字符串

  12. 12

    需要在函数内部使用正则表达式来匹配传递给它的字符串

  13. 13

    正则表达式以匹配包含特殊字符的数字字符串

  14. 14

    Perl:转义字符串中的特殊字符以匹配正则表达式

  15. 15

    使用正则表达式匹配包含数字和特殊字符的字符串

  16. 16

    不以/ *开头的字符串的正则表达式

  17. 17

    Python正则表达式可匹配仅包含字母数字,'-'和'_'且不以任何特殊字符开头或结尾的字符的字符串

  18. 18

    不要在javascript中使用正则表达式捕获匹配的字符串部分

  19. 19

    Javascript正则表达式匹配以字母或数字开头的字符串

  20. 20

    正则表达式用于不以点开头和/或结尾的匹配字符串

  21. 21

    正则表达式匹配字符串开头但不包括

  22. 22

    在python中用正则表达式匹配字符串的开头和结尾

  23. 23

    Java正则表达式匹配空格或字符串开头

  24. 24

    Python正则表达式匹配字符串或空格的开头

  25. 25

    正则表达式-如果组以javascript中的字符串开头,则不匹配

  26. 26

    正则表达式:匹配字符串是否以字母或数字开头,然后

  27. 27

    仅当字符串不以'N'开头时才与模式匹配的正则表达式

  28. 28

    正则表达式匹配字符串开头和行尾之间的模式

  29. 29

    正则表达式,用于匹配以开头的字符串。#和正常

热门标签

归档