2013-07-23 63 views
0
<script type = "text/javascript"> 
    var r = window.location.href; 
    if (r.match(/#|%23/)) { 
     r = r.replace(/#|%23/gi, \"@[email protected]\"); 
     window.location.href = r; 
    } 
</script> 

該腳本將重定向頁面,並在網址@[email protected]更換#符號(不要問爲什麼)...JavaScript重定向和替換

我想這樣它不修改腳本「T代替 「#」,如果它是在URL的結尾

例如:

http://www.example.com/test.php?f=abc#def 

將變得

http://www.example.com/[email protected]@def 

但此鏈接:

http://www.example.com/test.php?f=abc#def# 

將變爲:

http://www.example.com/[email protected]@def# 

回答

0

用積極前瞻,以保證至少有一個或多個字符:

/(#|%23)(?=.)/g 
+0

也許'( ?($!)'(不是行尾)將是更明顯的選擇,但都做同樣的工作。 –

+0

唯一的問題是你的前瞻性。也會匹配一個空格,所以如果#在URL的末尾處有一個空格,例如[http://www.example.com/[email protected]@def#]這意味着它仍然會替換結尾#。也許更換。與#在前瞻所以(?=#) – Srb1313711

+0

所以我把正則表達式代碼在r.match或r.replace? – libertaire