正则表达式只匹配一些特殊字符

时间:2016-02-24 09:20:24

标签: regex

我有以下正则表达式,它会转义数字和特殊字符。但它不会拾取诸如!“;;()<> @ *%^ $〜#。

之类的字符

它逃脱的是:0-9-+&£?|\/{}

正则表达式:

"[a-zA-Z._^%$#!~@,']+"

我试过这个:

"[a-zA-Z._^!*:;()<>\"%$#!~@,']+";但似乎无效。

如何扩展我的正则表达式以捕获这些值?

原因是,我不希望用户将这些字符输入到表单上的名字或姓氏。

我在javascript中使用这个正则表达式,因此它包含在''

3 个答案:

答案 0 :(得分:1)

您可以使用角色类并添加所需的一切。像这样:

/[a-zA-Z._!":;()<>@*%\^$~#']+/
  • []是一个字符类
  • a-zA-Z._!":;()<>@*%\^$~#'就是您在问题中提到的

Online Demo

答案 1 :(得分:0)

您还需要转义正则表达式字符串中的特殊字符。

[a-zA-Z._^!\*\:\;\(\)\<\>\"\%\$\#\!\~\@,\']+

请参阅https://regex101.com/r/eK7yK1/3

答案 2 :(得分:0)

您使用什么语言编码?

无论如何,由于您提供的细节很少,我建议您使用"更改/以包装您的正则表达式代码,如下所示:/[a-zA-Z._^%$#!~@,']+/