我有一个奇怪的问题,也许你可以帮助我。我正在尝试检查给定的字符串是否包含特殊字符。下面的代码可以工作,但是在方括号 [ ] 的条件下,一个字符似乎被豁免。你能帮我解决这个问题吗?谢谢。
$string = 'starw]ars';
if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $string)) {
echo 'Output: Contains Special Characters';
}else{
echo 'Output: valid characters';
}
请注意:我无法使用以下条件,因为我需要接受其他语言(例如阿拉伯语、中文等)中的其他字符,因此这意味着我需要指定所有非字符允许。
if (!preg_match('/[^A-Za-z0-9]/', $string))
感谢您的帮助。谢谢。
最佳答案
您忘记在表达式中添加方括号[]
。我已在您当前的表达式中添加了此 \[\]
。
<?php
ini_set('display_errors', 1);
$string = 'starw]ars';
if (preg_match('/[\[\]\'^£$%&*()}{@#~?><>,|=_+¬-]/', $string))
{
echo 'Output: Contains Special Characters';
} else
{
echo 'Output: valid characters';
}
关于php - php 如何检查字符串是否包含方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44154764/