通常爲了生成url slug,我使用https://github.com/jprichardson/string.js庫 - 和slugify
。但是它會刪除所有中文字符。作爲一種變通方法我用下面的函數:如何從漢字生成url slug?
var slugify = function(str){
str = str.replace(/\s+/g,'-') // replace spaces with dashes
str = encodeURIComponent(str) // encode (it encodes chinese characters)
return str
}
所以對於輸入中文 標題
我得到%E4%B8%AD%E6%96%87-%E6%A0%87%E9%A2%98
和它看起來像這樣的網絡瀏覽器URL輸入框(和它的作品):
http://example.com/中文-標題
不過,我想也除去任何特殊字符,如[email protected]#$%^&*)
等的問題是string.js
文庫是使用下面的代碼段內部:
.replace(/[^\w\s-]/g
它刪除任何特殊字符,但也刪除中文字符,因爲它們不匹配\w
正則表達式...
所以我的問題是 - 如何修改上面的正則表達式,使其保持中文字符?
我試圖
replace(/[^a-zA-Z0-9_\s-\u3400-\u9FBF]/g,'')
但它仍然取代中國文字...
感謝現在的工作:) – user606521 2014-09-06 10:01:55