PHP正则表达式[仅接受选定的字符]

Sad*_*adi 4 php regex string validation preg-match

我想接受一个字符列表作为用户的输入并拒绝其余的.我可以接受格式化的字符串或查找是否缺少字符/字符串.但是我如何只接受一组角色而拒绝所有其他角色.我想用preg_match来做这件事.

例如,允许的字符是:a..z,A..Z, - ,''用户必须能够以任何顺序输入这些字符.但是他们不得允许使用除这些角色以外的其他角色.

Mat*_*att 8

使用否定的字符类:[^ A-Za-z-\w]

只有当用户输入的内容不是该字符类中的内容时,才会匹配.

if (preg_match('/[^A-Za-z-\w]/', $input)) { /* invalid charcter entered */ }
Run Code Online (Sandbox Code Playgroud)