如何用正则表达式检测各类连字符、减号与破折号?
正则优化方案:覆盖所有目标水平中线分隔符并使用Unicode编码
你的原始正则未覆盖全部目标符号——缺少了连字符(U+2010)和数字破折号(U+2012),所以不够健壮。
直接使用Unicode编码形式可以彻底避免复制粘贴时的字符转义或变形问题,下面是针对你列出的6种符号的完整正则:
/[\u002D\u2010\u2012\u2013\u2014\u2015]/
各编码对应符号说明:
\u002D:连字符减号(Hyphen-minus)\u2010:连字符(Hyphen)\u2012:数字破折号(Figure dash)\u2013:短破折号(En dash)\u2014:长破折号(Em dash)\u2015:水平杠(Horizontal bar)
如果需要匹配这些符号的所有变体(比如某些字体中的特殊破折号),可以进一步扩展Unicode属性类,但针对你明确列出的6种符号,上述正则完全足够且精准。
内容的提问来源于stack exchange,提问作者João Pimentel Ferreira
相关产品推荐
相关产品推荐

