每個數組項目我有這樣的正則表達式在一個字符串任何#
轉換成散列標籤陣列過濾器,正則表達式
myArr= myStr.match(/#\S+/g);
我也有這個從比alpah數字減去下劃線等字符串任何過濾掉。
myStr= myStr.replace(/[^a-zA-Z0-9_]/g, "");
但現在我想結合這2,以確保每一個數組中的項目中只包含字母數字值,包括下劃線,並在開始時的#
。
任何人都可以幫忙,謝謝。
每個數組項目我有這樣的正則表達式在一個字符串任何#
轉換成散列標籤陣列過濾器,正則表達式
myArr= myStr.match(/#\S+/g);
我也有這個從比alpah數字減去下劃線等字符串任何過濾掉。
myStr= myStr.replace(/[^a-zA-Z0-9_]/g, "");
但現在我想結合這2,以確保每一個數組中的項目中只包含字母數字值,包括下劃線,並在開始時的#
。
任何人都可以幫忙,謝謝。
爲什麼這麼複雜?
myArr = myStr.match(/#[a-z0-9_]+/gi);
編輯:我誤解了你的意圖。這裏有一個稍微簡單一點,但更高效的解決方案:
myArr = myStr.replace(/#\S+/g,function(m) {
return "#"+m.replace(/[^a-z0-9_]+/gi,"");
}).match(/#\S+/g);
gi需要g。 –
@NoahR呃,沒有。這是故意的。 –
謝謝,我摘下了'我'。當我輸入'#hello_wor-ld'期待'#hello_world'時,我得到'#h' –
因爲它是兩種不同的操作。 –