缺少PHP正则表达式preg_replace定义

时间:2012-08-15 21:18:31

标签: php regex

我想让用户输入有效,因此我使用了regual表达式。 我希望用户只插入字母数字内容和一些特定字符 - ,!$ ^&等等 到目前为止,我得到的代码是:

$validText = preg_replace('@[^A-Za-z0-9\w\ ]@', '',$text);

但它只关心字母数字和空格,但是我如何定义regual表达式来将字符称为。'!@#等?我在哪里定义它? 顺便问一下,你能不能给我推荐一个好的正则表达式?

任何建议

1 个答案:

答案 0 :(得分:4)

只需将它们添加到您的论坛。

$validText = preg_replace('/[^A-Za-z0-9\w .\'!@#]/', '',$text);

注意: preg_match()可能更适合这种情况。目前您正在允许无效字符然后删除它们。造成糟糕的用户体验。