ハイフンやマイナスやダッシュや長音記号らしき Unicode 文字をハイフンマイナスに正規化する

export function normalizeHyphenLike(str) {
// U+002D Hyphen-Minus
// U+00AD Soft Hyphen
// U+02D7 Modifier Letter Minus Sign
// U+2010 Hyphen
// U+2011 Non-Breaking Hyphen
// U+2012 Figure Dash
// U+2013 En Dash
// U+2014 Em Dash
// U+2015 Horizontal Bar
// U+2043 Hyphen Bullet
// U+2212 Minus Sign
// U+2796 Heavy Minus Sign
// U+2E3A Two-Em Dash
// U+2E3B Three-Em Dash
// U+30FC Katakana-Hiragana Prolonged Sound Mark
// U+FE58 Small Em Dash
// U+FE63 Small Hyphen-Minus
// U+FF0D Fullwidth Hyphen-Minus
// U+FF70 Halfwidth Katakana-Hiragana Prolonged Sound Mark
return str.replace(
/[\u00AD\u02D7\u2010\u2011\u2012\u2013\u2014\u2015\u2043\u2212\u2796\u2E3A\u2E3B\u30FC\uFE58\uFE63\uFF0D\uFF70]/g,
'\u002D'
)
}

参考