你好,我有一个小问题
这是我当前的代码
<?php
$str = trim($_POST['email']);
$str = nl2br($str); // insert <br /> before \n
$str = preg_replace($whitelistPregReplace, '<span style="color:blue">$1$2$3</span>', $str);
echo $str;
?>
问题在于,如果出现“ 1bird.one”,则会突出显示整行。我只希望在出现“ bird.one”的情况下显示整行,而不是出现fdsfsdfsdbird.onefdsfsd
感谢您的帮助
答案 0 :(得分:1)
您可以使用单词边界(\b
)来指示字符串不应紧靠其他“单词”字符:
~(.*)\b(bird\.one)\b(.*)~im
这将与efgerv bird.one evwerg
匹配,但在rgbre 1bird.one erfrwf
上失败。
答案 1 :(得分:0)
<?php
$str = 'bird.one';
$whitelist = [
'bird.one',
'bird.two'
];
for($i = 0; $i < count($whitelist);$i++){
if (strcmp($whitelist[$i], $str) == 0) {
/** add the span to highlight */
echo "<span style='color:blue'>{$str}</span><br>";
} else {
/** other text to echo */
}
}
?>
只会回声和高飞bird.one。容易适应