[英]Javascript: Regex to capture white space and special characters EXCEPT hyphens within words
目前正在使用/[\\W]+/g
獲取所有非單詞字符,這就是我想要的。
但是,當它們沒有被空格包圍時(即,當它們被用作連接詞時),我想省略連字符。
例子:
var test = [
'e-mail', // Nothing shouldn't be captured
'e-commerce is great.', // Spaces and full stop should be captured
'He - yes he - went', // Dashes and white space should be captured
'He&-you, me-him' // &-, and the whitespace should be captured while the dash in me-him should not
]
嘗試使用([\\W]-|-[\\W]|[^\\w-])+
正則表達式中的否定是繁瑣的,通常你必須使用前瞻來解決問題,但這里有一個簡單的修復。 我沒有匹配所有非單詞字符( [\\W]
),而是匹配任何不是單詞字符或連字符( [^\\w-]
)的東西,然后在特殊情況下添加連字符未被包圍的情況按字符( [\\W]-
和-[\\W]
)。 我必須先將連字符捕獲,否則非單詞,非連字符捕獲將匹配兩個空格或特殊字符,下一部分將無法獲取連字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.