在PHP中使用regex验证输入数据有什么问题?


What's the issue in validating the input data with regex in PHP?

我想验证用户输入的文本。条件是文本应包含字母数字字符、散列(# symbol)和单词之间的空格。对于它,我使用以下代码,但它不接受#(哈希)符号,每次返回FALSE。有人能在这方面帮助我吗,这样我就能回归真实了?

<?php
 $validate = alpha_num_symbol($field_value);
 function alpha_num_symbol($str) {
   return  (! preg_match("/^[a-zA-Z0-9's'.,!?]*$/",$str)) ? FALSE : TRUE;
}
?>

您是否尝试更改您的正则表达式字符组以具有哈希符号?/^[a-zA-Z0-9's'.,!?#]*$/

使用模式/^[a-zA-Z0-9's'.,!?#]*$/它适合我。

正则表达式/^[a-zA-Z0-9's'.,!?]*$/包含一个匹配0次或0次以上的字符集[a-zA-Z0-9's'.,!?]。在该字符集中没有散列符号,但是根据您的描述,还有其他您不想匹配的字符。我将使用这个正则表达式:

"/^[a-zA-Z0-9 #]*$/"