任何人都有正则表达式允许使用字母数字和-_“,”以及空格?
答案 0 :(得分:3)
试试这个:
/^[A-Za-z0-9-_",'\s]+$/
答案 1 :(得分:0)
我在正则表达式中的\ s标志上已经阅读了很多,我看到它像糖果一样遍布stackoverflow,但是看起来\ s标志匹配所有元字符并且还跳过换行符。
这将允许忽略您在软件,网站或数据库中不需要的各种字符的过滤用户输入。
\ s标志还会跳过新的换行符,导致过滤后的代码容易被包含在内,所以请自行承担使用此方法的风险,否则请高兴的黑客大声笑......
你可以考虑这样的事情:/[^\p{Xan}]++$/D
\p{Xan}
匹配所有unicode字母和数字,如果这个
不允许所有字母表空白区域然后我不确定如何安全
将这些匹配为过滤器。
++
利用可以帮助优化的占有量词
比赛
$/D
导致正则表达式终止于字符串的末尾而不是
在换行前跳过任何字符
\ s标志:
参考:http://php.net/manual/en/reference.pcre.pattern.modifiers.php
s(PCRE_DOTALL) 如果设置了此修饰符,则模式中的点元字符将匹配所有字符,包括换行符。没有它,新行就是 排除。此修饰符等效于Perl的/ s修饰符。一个 负面类如[^ a]总是匹配换行符, 独立于此修饰符的设置。
元字符:
参考:http://en.wikipedia.org/wiki/Metacharacter
元字符是具有特殊含义的字符(而不是 计算机程序,例如shell解释器 或正则表达式引擎。
在正则表达式中,必须始终有11个元字符 前面加一个反斜杠,\,在表达式中使用:
开口方括号[,反斜杠\,插入符号^,美元 sign $,period或dot。,竖线或竖线符号| ,. 问号?,星号或星号*,加号+,开头 圆括号(和闭合圆括号)。[1]
如果要在正则表达式中使用任何这些字符作为文字, 你需要用反斜杠来逃避它们。如果你想匹配1 + 1 = 2, 正确的正则表达式是1 + 1 = 2。否则,加号将有一个 特殊意义。