/^[^ ]([\w- \.\\\/&#]+)[^ ]$/,
我有上面的正则表达式。我想确保它接受所有特殊字符,但我不想指定整个特殊字符列表,如[\w- \.\\\/&#!@#$&]
。我们如何确保上述正则表达式接受所有特殊字符
答案 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)
.
匹配除换行符之外的任何字符。