如何使下面的正则表达式接受任何特殊字符

时间:2012-02-15 20:37:35

标签: javascript regex

/^[^ ]([\w- \.\\\/&#]+)[^ ]$/,

我有上面的正则表达式。我想确保它接受所有特殊字符,但我不想指定整个特殊字符列表,如[\w- \.\\\/&#!@#$&]。我们如何确保上述正则表达式接受所有特殊字符

3 个答案:

答案 0 :(得分:6)

[^\w\s]匹配任何非字母数字和非空白字符。

\S匹配任何非空格字符。

.匹配除换行符之外的任何字符。

[\S\s]匹配JavaScript正则表达式中的任何字符。

答案 1 :(得分:1)

由于你已经有\w并且已经有空格,你必须要除控制字符之外的所有ASCII字符。那将是:

[ -~]

...或代码点在U+0020(空格)到U+007E(代字号)范围内的任何字符。但看起来你想要确保第一个和最后一个字符不是空格。事实上,看着你的previous question,我假设你只想要那些位置上的字母或数字。这可行:

/^[A-Za-z0-9][ -~]*[A-Za-z0-9]$/

...但是要求字符串长度至少为两个字符。要允许单字符字符串,请将其更改为:

/^[A-Za-z0-9](?:[ -~]*[A-Za-z0-9])?$/

换句话说,如果只有一个字符,则必须是字母或数字。如果有两个或多个字符,则第一个和最后一个必须是字母或数字,而其余字符可以是任何打印字符 - 即字母,数字,“特殊”(标点符号)字符或者是一个空间。

请注意,这只会匹配ASCII字符,而不是像Âë这样的重音拉丁字母,或其他字母或书写系统中的符号。

答案 2 :(得分:0)

.匹配除换行符之外的任何字符。