gpt4 book ai didi

php - preg_match 不接受新行

转载 作者:搜寻专家 更新时间:2023-10-31 21:36:17 28 4
gpt4 key购买 nike

我知道这听起来有点奇怪,但我会尽力解释。
使用此代码检查 $text 是否包含不受支持的字符:

if(!preg_match('/\A[\w .,]+\z/', $text))
{
echo "Text contains unsupported characters.";
}

现在的问题是$text是用户在textarea中输入的文本。

$text_c = $_POST['text'];
$text = mysql_real_escape_string($text_c);
echo "<form method='post'><textarea name='text'>".$text."</textarea><br /><input type='submit' name='submit' value='Submit'></form>";

除一件事外,一切都完美无缺。例如,如果这是在文本区域中输入的文本:

Hello, my name is John.

好的。

Hello, my name is John.
I am 20 years old.

没有。文本包含不受支持的字符。 (指的是换行,因为textarea的内容发生了变化,有类似这样的内容:My name is John.\r\nI am 20 years old.)

我的问题是:我需要更改什么以支持新行?我希望你明白。

编辑: 我刚刚发现,没有 mysql_real_escape_string 一切都完全按照我的意愿运行。是否有任何解决方案可以将 mysql_real_escape_stringpreg_match(在我的例子中)或 mysql_real_escape_string 应该删除?

最佳答案

您可以使用 \s 来表示空格(换行符、制表符和空格)。

所以你的正则表达式变成:/\A[\w .,\s]+\z/

注意 \n \r 都是有效的转义字符,如果您不这样做,\r\n 一起将匹配 dos 换行符不想包含空格/制表符。

很好的引用:http://www.regular-expressions.info/reference.html

关于php - preg_match 不接受新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18670130/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com