1

根据这个(使用 JavaScript 获取光标下的单词)链接我可以在鼠标指针下获取单词。这对英语来说很好。我改变它(阿拉伯语)

<p>سلام به همه</p>
Word: <span id="word"></span>

<script type="text/javascript">
    $(function() {
        // wrap words in spans
        $('p').each(function() {
            var $this = $(this);
            $this.html($this.text().replace(/[^\x00-\x80]+/g, "<span>$1</span>"));
        });

        // bind to each span
        $('p span').hover(
            function() { $('#word').text($(this).css('background-color','#ffff66').text()); },
            function() { $('#word').text(''); $(this).css('background-color',''); }
        );
    });

但它为每个单词返回 '$1'。请帮忙!

4

1 回答 1

3

需要出现在原始正则表达式中的括号。在正则表达式表示法中,括号形成一个“匹配组”,用于$1替换替换字符串中的“”。

$this.html($this.text().replace(/([^\x00-\x80]+)/g, "<span>$1</span>"));

如果您的正则表达式中没有任何匹配组,则$1简单地将其视为文字美元符号和一个。

当您有多个带括号的匹配组时,这些组用于按照匹配组打开的顺序替换以美元符号表示的编号占位符(第一个匹配组替换$1,第二个替换$2等)。

于 2012-07-07T07:31:28.883 回答