我需要简单的一行内衬来检查带有 - ,_和的字母数字字符。 (对于文件名),用作if条件。
我尝试了几件事,包括ctype_allnum和preg match,但是我无法让它工作。例如:
if(!ctype_alnum(preg_replace("-_\.", "", "should_pas-s.html")))
{ sth; }
我知道ctype_alnum,但这需要外部(不是一行)数组,因此会使事情变得复杂。 (有很多条件需要检查。)
答案 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)