我發現了很多正則表達式的例子來從文本中檢索hashtags。不幸的是,沒有任何例子是我需要的。hashtags的正則表達式
這幾乎是我所需要的,但...
function hashtags(text) {
return text.replace(/(^|\s)#(\w*[a-zA-Z]+\w{2,50})/g,
"$1<a href='/h/$2' target='_blank'>#$2</a>");
}
#標籤不能以數字開頭,以避免情況下,當例如第12號得到hashtaged。
上面的例子檢查它,但它不允許像ÁÉÍÚ這樣的字符,它不正確地檢查標籤長度並且不允許字符' - '。
所以,我需要如下:
#標籤可與任何字母開頭 - A,Z,B,N,O,U等,但不能以數字,而不是用特殊標記&%$或 - _
標籤總長度必須爲3-50個字符。正則表達式必須接受只有完整單詞的標籤,但不能在第一個50個字符後剪切它們。因此,以#開頭但包含超過50個字符的單詞必須被忽略,而不是將前50個字符轉換爲hashtag鏈接。在我的示例
{2,50}
不能正確工作。標籤的其餘部分(當選中它不以數字或特殊標誌開頭時)可能包含數字,任何字母和
_ -
標誌。\w
只允許_
但不-
這可能嗎?
你有簡單的測試輸入嗎? –
我認爲你可以適應[這個解決方案](http://stackoverflow.com/a/31115742/3832970)。 –