2011-03-25 56 views
0

我想突出顯示已使用正則表達式的文字& css。但似乎出了什麼問題。誰能幫幫我嗎? $ 1在這裏似乎不起作用,因爲它不能替代這個詞。正則表達式替換的問題

<head> 
<title>Example</title> 

<style type="text/css"> 
    .highlight{ 
    color: maroon; 
    font-size: 22px; 
    } 

</style> 
<script type="text/javascript" src="../scripts/jquery-1.4.js"></script> 
<script type="text/javascript"> 
function getSentence(word) { 
var sentence="here is the text"; 

if (sentence.toLowerCase().indexOf(word.toLowerCase())!=-1) { 
    sentence=sentence.replace(new RegExp('\\b'+(word)+'\\b', 'g'), '<span class="highlight">\$1</span>'); 

    $("#placeholder").append("<h3>"+sentence+"</h3><br/>"); 

    } 
    } 
</script> 

<form> 
    <div> 
    <a onclick=getSentence('text');>text</a> 
    </div> 
    <div id="placeholder"></div> 
</form> 

回答

0

你沒有設置任何捕捉組,所以你應該在你的替代方法使用$&代替$1

See example →

+0

非常感謝你mVChr! – dazzle 2011-03-25 09:25:01

0

在您的正則表達式捕獲括號是在錯誤的地方。此時括號消失,因爲它們不是字面的,而只是具有分組功能。你的正則表達式應該可以工作,如果你把括號放在引號中,如下所示:

'\\b(' + word + ')\\b'