我目前已经进行了预替换以更改显示在div中的单词的颜色。PHP - 使用preg_replace在特定字符之后更改单词的颜色
但是目前它仅仅是文本匹配。
if (sqlsrv_has_rows($stmt))
{
$data = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
echo "<div class='custom-font title-container'>
<div class='expand-button-container fa fa-expand' onclick='expandWindow()'></div>
<div id='title-container1'><div class='edit-note fa fa-pencil' onclick='editSQLNote()'> </div>" . "<div data-toggle='modal' data-target='#editSQLNoteNameModal' class='display-inline'>" . $data['SQLNoteName'] . "</div>" . " <div class='save-note fa fa-thumbs-up' onclick='saveSQLNote(); submitSQLNoteText();'></div></div>
</div>";
$note = nl2br($data['SQLNote']);
$note = preg_replace('%(SELECT|FROM|WHERE|INNER|JOIN|DISTINCT|LEFT|OUTER|APPLY|WITH|NOLOCK|DECLARE|ORDER BY|VARCHAR|bit)%m', '<span style="color: red;">$1</span>', $note);
$note = preg_replace('%(ISNULL|UPDATE|SET|INSERT INTO)%m', '<span style="color: #9A2EFE;">$1</span>', $note);
$note = preg_replace('%(IS NOT NULL|AND|IS NULL)%m', '<span style="color: grey;">$1</span>', $note);
$note = preg_replace('%(BEGIN TRAN|ROLLBACK TRAN|BEGIN|END|CASE|END|WHEN|THEN|ELSE)%m', '<span style="color: blue;">$1</span>', $note);
$note = preg_replace('%(GETDATE|MAX|CONVERT|UPDATE|CAST|COUNT)%m', '<span style="color: #FA58F4;">$1</span>', $note);
echo "<div contenteditable='true' id='ta4'>" . $note . "</div>";
}
else
{
echo "No data found";
}
但是我想知道是否有一种方法,如果我把一个@符号什么都的下一个单词是直到字的颜色变化后的空间。
所以,如果我把@hello和@goodbye他们将变为绿色(包括@符号,但只有直到字的末尾)
但是我不能硬编码的话要打招呼,再见,因为它们将永远是不同的(这些将被用户声明的变量总是不同)。
那么有没有办法在@符号后动态改变单词的颜色?
我很抱歉,如果这没有意义,我试图解释我最好的。
使用正确的正则表达式,不是吗? –