我試圖找到以英鎊符號開頭的單詞。的JavaScript。但正則表達式:單詞開頭的英鎊符號
"test #word no#luck".replace(/\b#([\w]+)\b/g, "<#$1>");
字邊界似乎並不適用於#-sign。它輸出:
test #word no<#luck>
還我有點糊塗了,我需要添加#-Sign又在替換模式「<#$ 1>」,因爲算法似乎在這個過程中剝離它。
我試圖找到以英鎊符號開頭的單詞。的JavaScript。但正則表達式:單詞開頭的英鎊符號
"test #word no#luck".replace(/\b#([\w]+)\b/g, "<#$1>");
字邊界似乎並不適用於#-sign。它輸出:
test #word no<#luck>
還我有點糊塗了,我需要添加#-Sign又在替換模式「<#$ 1>」,因爲算法似乎在這個過程中剝離它。
試試這個:
result = subject.replace(/(?:^|\s)(#\w+)(?:\s|$)/g, "<$1>");
\b
將只與\w
的問題是, 「#」 本身不是** **一個字的字符;因此在它之前有一個非單詞到單詞的過渡是沒有意義的。 – Pointy
由於#不是一個單詞字符(它是[a-zA-Z0-9_])#符號後的每個單詞都將被匹配。 – ncank
而不是'\ b'你想要'(?= [^ \ w#])''。 – James