[JavaScript] 正規表現でハイフンやダッシュなどの区切り文字を unicode-regex + Dash_Punctuation で検出する

Tadashi Shigeoka ·  Tue, November 5, 2019

JavaScript, Node.js で、正規表現でハイフンやダッシュなどの区切り文字を unicode-regex + Dash_Punctuation で検出する方法をご紹介します。

JavaScript

前提条件 ハイフンやダッシュを漏れなく正規表現で判定したい

― の文字の種類がたくさんあり、これの入力値をまるっと正規表現で判定するために unicode-regex という npm を利用することにしました。

例)

  • ― ダッシュ
  • − ハイフン マイナス
  • ‐ ハイフン

Google 日本語入力でのダッシュ、ハイフン

Google 日本語入力の変換候補でも、1ページ目にこれぐらいの種類が表示されます。

Unicode Dash_Punctuation | Google IME

unicode-regex + Dash_Punctuation

サンプルコード ハイフンやダッシュを検出する正規表現

const unicodeRegex = require('unicode-regex');

const dashRegex = unicodeRegex({
  General_Category: ['Dash_Punctuation']
});

console.log(dashRegex.toString());

// [\\u002d\\u058a\\u05be\\u1400\\u1806\\u2010-\\u2015\\u2e17\\u2e1a\\u2e3a-\\u2e3b\\u2e40\\u301c\\u3030\\u30a0\\ufe31-\\ufe32\\ufe58\\ufe63\\uff0d]

参考: List of Unicode Characters of Category “Dash Punctuation”

以上、JavaScript, Node.js で、正規表現でハイフンやダッシュなどの区切り文字を unicode-regex + Dash_Punctuation で検出したい、現場からお送りしました。