PHP oneliner检查字母数字+ - ,_和

时间:2016-03-06 14:40:31

标签: php filter

我需要简单的一行内衬来检查带有 - ,_和的字母数字字符。 (对于文件名),用作if条件。

我尝试了几件事,包括ctype_allnum和preg match,但是我无法让它工作。例如:

if(!ctype_alnum(preg_replace("-_\.", "", "should_pas-s.html")))
{ sth; }

我知道ctype_alnum,但这需要外部(不是一行)数组,因此会使事情变得复杂。 (有很多条件需要检查。)

1 个答案:

答案 0 :(得分:1)

您遇到的问题是使用preg_replace。文档说明了模式应该是什么样的。

您需要在正则表达式中放置开始和结束分隔符。例如:

preg_replace("#-_\.#", "", "should_pas-s.html")

所以在你的情况下代码应该是:

if(!ctype_alnum(preg_replace("#-_\.#", "", "should_pas-s.html")))

这个问题已经回答了这个问题: Warning: preg_replace(): No ending delimiter '/' found

或者这个: What Delimiter to use for preg_replace in PHP (replace working outside of PHP but not inside)