我試圖使用Javascript的URL的散列部相匹配。哈希將有格式
/#\/(.*)\//
這是很容易使用「新的RegExp()」創建一個JS正則表達式的方法來實現,但我想不出如何使用標準格式去做,因爲最後的兩個正斜槓開始評論。有沒有另外一種方法可以寫出不會發表評論的文章?
例
// works
myRegexp = new RegExp ('#\/(.*)\/');
// fails
myRegexp = /#\/(.*)\//
我試圖使用Javascript的URL的散列部相匹配。哈希將有格式
/#\/(.*)\//
這是很容易使用「新的RegExp()」創建一個JS正則表達式的方法來實現,但我想不出如何使用標準格式去做,因爲最後的兩個正斜槓開始評論。有沒有另外一種方法可以寫出不會發表評論的文章?
例
// works
myRegexp = new RegExp ('#\/(.*)\/');
// fails
myRegexp = /#\/(.*)\//
我想匹配使用JavaScript的URL的哈希部分。
是的,不要這樣做。每個瀏覽器都內置了一個完美的URL解析器。位置對象(window.location
或鏈接)上設置一個href
,你可以從性能hostname
,pathname
,search
,hash
等
var a= document.createElement('a');
a.href= 'http://www.example.com/foo#bar#bar';
alert(a.hash); // #bar#bar
如果你把讀/寫URL部分的路徑樣/
- 在散列分隔列表中,我建議按照hash.split('/')
。
至於正則表達式,兩個版本對我來說都是一樣的。尾隨//
不會引起評論。如果您只想安撫一些令人不快的語法突出顯示,您可能會將/
轉義爲\x2F
。
哦,很好 - 我會用它。謝謝! – lonesomeday 2010-09-15 18:17:00
它不作爲註釋的開始,就像在一個字符串兩條斜線。看這裏:http://jsfiddle.net/Gr2qb/2/
這失敗了? 're = /#\/(()*//);''給我''/#\/((()*)''在控制檯上... – gnarf 2010-09-15 13:36:25
你測試過了嗎?用什麼?這對解析器來說似乎是一件愚蠢的事情。 – lincolnk 2010-09-15 13:38:35
這很奇怪。我看不到我在代碼中改變了什麼,但在跨作品中複製這些代碼很好。我的錯。 – lonesomeday 2010-09-15 13:47:56