Javascript Regex允许使用特殊字符

Javascript Regex允许使用特殊字符,javascript,regex,Javascript,Regex,我需要一个正则表达式,它允许字母、连字符(-)、引号(')、点()、逗号(,)和空格。这就是我现在拥有的 ^[A-Za-z\s\-]$ 谢谢我从你的正则表达式中删除了\s,因为你说的是空格,而不是空格。请随意将其放回原处,将末尾的空格替换为\s,否则非常简单: ^[A-Za-z\-'., ]+$ 它匹配字符串的开头。集合中的任何字符重复1次或多次,并结束字符串。你不必在一个集合中转义,以防你感到奇怪。我从你的正则表达式中删除了\s,因为你说的是空格,而不是空格。请随意将其放回原处,将末尾

我需要一个正则表达式,它允许字母、连字符(-)、引号(')、点()、逗号(,)和空格。这就是我现在拥有的

^[A-Za-z\s\-]$ 

谢谢

我从你的正则表达式中删除了
\s
,因为你说的是空格,而不是空格。请随意将其放回原处,将末尾的空格替换为
\s
,否则非常简单:

 ^[A-Za-z\-'., ]+$

它匹配字符串的开头。集合中的任何字符重复1次或多次,并结束字符串。你不必在一个集合中转义
,以防你感到奇怪。

我从你的正则表达式中删除了
\s
,因为你说的是空格,而不是空格。请随意将其放回原处,将末尾的空格替换为
\s
,否则非常简单:

 ^[A-Za-z\-'., ]+$

它匹配字符串的开头。集合中的任何字符重复1次或多次,并结束字符串。如果你想知道,你不必在一组中逃逸。

如果你很接近,请尝试以下方法:

^[A-Za-z\s\-',]+$
请注意,我假设您希望匹配包含这些字符中的一个或多个的字符串,因此我在character类之后添加了
+
,这意味着“将前面的元素重复一次或多次”


请注意,除空格外,这目前还允许制表符和换行符,因为
\s
将匹配任何空白字符。如果您只想允许使用空格,请将其更改为“
^[A-Za-z\-”,]+$
(刚刚将
\s
替换为空格)。

如果您非常接近,请尝试以下操作:

^[A-Za-z\s\-',]+$
请注意,我假设您希望匹配包含这些字符中的一个或多个的字符串,因此我在character类之后添加了
+
,这意味着“将前面的元素重复一次或多次”


请注意,除空格外,这目前还允许制表符和换行符,因为
\s
将匹配任何空白字符。如果您只想允许使用空格,请将其更改为“
^[A-Za-z\-”,]+$
(刚刚将
\s
替换为空格)。

您可能尝试了
新的RegExp(“^[A-Za-z\s\-\.\\”,]$”
。但是,这里有一个字符串文字,反斜杠只是转义以下字符,这是分隔引号所必需的(和反斜杠)

但是,范围
s-.
无效。因此,您需要转义反斜杠以在RegExp构造函数中传递带反斜杠的字符串:

new RegExp("^[A-Za-z\\s\\-\\.\\'\\\"\\,]$")
相反,它更易于读写,因为您不需要字符串转义正则表达式转义字符。此外,它们在脚本“编译”期间只解析一次-每次计算行时不需要执行任何操作。如果您希望动态构建正则表达式,则只需使用。因此,请使用

/^[A-Za-z\s\-\.\'\"\,]$/
而且它会起作用的。而且,你不需要在一个小时内逃离这些魔咒,所以它只是

/^[A-Za-z\s\-.'",]$/

您可能尝试了
new RegExp(“^[A-Za-z\-\.\''\'\'\',]$”)
。但是,您在那里有一个字符串文字,反斜杠只是转义以下字符-仅对定界引号(和反斜杠)是必需的

但是,范围
s-.
无效。因此,您需要转义反斜杠以在RegExp构造函数中传递带反斜杠的字符串:

new RegExp("^[A-Za-z\\s\\-\\.\\'\\\"\\,]$")
相反,它更易于读写,因为您不需要字符串转义正则表达式转义字符。此外,它们在脚本“编译”期间只解析一次-每次计算行时不需要执行任何操作。如果您希望动态构建正则表达式,则只需使用。因此,请使用

/^[A-Za-z\s\-\.\'\"\,]$/
而且它会起作用的。而且,你不需要在一个小时内逃离这些魔咒,所以它只是

/^[A-Za-z\s\-.'",]$/

是什么阻止你添加其他允许的字符?你有问题吗?在字符类中添加点、引号和逗号?我相信你也缺少量词。这与Javascript无关…@Neal:但是语言是相关的,它可能支持不同的正则表达式功能或需要特殊转义。请不要只是删除it@Neal语言标记应该包含在正则表达式标记中。这里不是必需的,但是…是什么阻止你添加其他允许的字符?你有问题吗?那么在字符类中添加点、引号和逗号?我相信你也缺少量词。这与Java无关script…@Neal:但是语言是相关的,它可能支持不同的正则表达式功能或者需要特殊的转义。请不要只是删除it@Neal语言标记应该包含在正则表达式标记中。这里不需要,但是。。。