JavaScript: 如何检测一个单词是否被高亮选中

在前端开发中,有时需要检测一个单词是否被用户用鼠标或键盘的方式选择(即高亮)了。这个功能通常用于文本编辑器、富文本编辑器、搜索引擎等场景中。在本文中,我们将介绍如何使用 JavaScript 实现这一功能。

通过 Selection 对象获取选中文本

JavaScript 中的 Selection 对象表示用户当前选择的文本区域。要获取 Selection 对象,可以使用以下代码:

----- --------- - ----------------------

然后,就可以通过 Selection 对象获取选中的文本:

----- ------------ - ---------------------

检测指定单词是否被选中

有了选中的文本,接下来就是判断指定的单词是否被选中了。我们可以使用正则表达式来实现:

-------- -------------------- -
    ----- --------- - ----------------------
    -- ---------------------------- --- --- -
        ------ ------
    -
    ----- ------- - --- ------------ - ---- - ------ -----
    ------ -----------------------------------
-

上面的函数接受一个字符串参数 word,并返回一个布尔值表示该单词是否被选中。首先,我们获取当前的选中文本,如果为空,则说明没有选中任何内容,直接返回 false。然后,我们使用 \b 匹配单词边界,加上 i 参数表示不区分大小写。最后,使用正则表达式的 test 方法来检测选中文本中是否包含该单词。

示例代码

以下是一个完整的示例,演示如何在页面上检测用户是否选择了指定的单词:

--------- -----
----- ----------
------
    ----- ----------------
    ----------- --------- -----------------
    -------
        ---------- -
            ----------------- -------
        -
    --------
-------
------
    --------- - ---- -- --- -- ---- ----------------
    ---
        ----- ----- ----- --- ----- ----------- ---------- ----- --- -- ---- ------ ----- ----- --------- ------- ------- ------- ---- --- --------- ---------- ----- ------ --------- --- --- -------- ----- ---- -- ----- --- ----------- ---- --- ------ ---------- -------- --- ------ ----- ------ -- -------- ----- ---- ------- ------
    ----
    --------
        -------- -------------------- -
            ----- --------- - ----------------------
            -- ---------------------------- --- --- -
                ------ ------
            -
            ----- ------- - --- ------------ - ---- - ------ -----
            ------ -----------------------------------
        -
        
        ------------------------------------ ---------- -
            ----- ---- - --------------
            ----- ---------- - ---------------------
            -- ------------ -
                ---------- ---- --------- -- ---------------
            -
        ---
    ---------
-------
-------

以上代码展示了一个页面,其中包含一个段落,用户可以在其中选择单词。当用户选择了指定的单词(本例中为 consectetur)时,会弹出一个信息框提示该单词已被高亮选中。

结论

本文介绍了如何使用 JavaScript 检测一个单词是否被高亮选中。通过获取 Selection 对象和使用正则表达式,我们可以方便地实现这一功能,并在文本编辑器、富文本编辑器、搜索引擎等场景中使用。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/27775