ハイフンとかマイナスとかダッシュとか

2020-03-23
%E5%B0%8F%E3%83%8D%E3%82%BF%E9%9B%91%E8%AB%87
    

目次

ソースコードを読んでいたら、既存処理にとある文字列変換処理があった。

例 (ソースはイメージです)

const convert = (arg) => {
  return arg.split('ー').join('‐')
}

いざテストをしようと思って、「—」を入力したら期待値が出なかった。

なぜならば、この処理は「ー(全角長音)」を「‐(全角ハイフン)」に変換しているので、「—(全角ダッシュ)」はスルーされるからだ。

ハイフンに似た文字

気になったので色々調べたら、少なくとも以下の文字があることがわかった。

-(全角ハイフンマイナス)
-(半角ハイフンマイナス)
‐(全角ハイフン)
−(全角マイナス)
‒(フィギュアダッシュ)
—(全角ダッシュ(emダッシュ))
–(二分ダッシュ(enダッシュ))
―(ホリゾンタルバー)
ー(全角長音)
ー(半角長音)
─(罫線)
━(罫線) 
ㅡ(ウ(ハングルの字母))
ـ(カシーダ)
⁻(上付きマイナス)
₋(下付きマイナス)
⸺(2emダッシュ)
⸻(3emダッシュ)

※これらの文字のうち 「フィギュアダッシュ」「全角ダッシュ」「二分ダッシュ」「ウ(ハングルの字母)」「カシーダ」「上付きマイナス」「下付きマイナス」「2emダッシュ」「3emダッシュ」 はサロゲートペア

参考

ダッシュ (記号) - wikipedia

ソフトハイフン - wikipedia

ハイフンと似た記号の区別が付きやすくしてほしい · Issue #6 · yuru7/HackGen

    
s-yoshiki
s-yoshiki
githubtwitterqiita
Web作ってますが、インタラクティブなプログラミングも好きです。
JavaScript / Vue / node.js / PHP / AWS / OpenCV

関連記事

少なくとも、これら説明できない奴、エンジニアとして、マジでやばいので自覚した方がいいぞ。について
元ネタ(?) 派生 最後に Twitterでネタ(?)になっていたのでメモ。 元ネタ(?) https://twitter.com/t0riumi/status/1225422385093865472 派生 https://twitter.com/eg19/status…

Qiitaでバズるとこうなる。アクセスの分析や原因考察をする
投稿した記事 アクセス分析 Qiitaでバズった原因の考察 終わりに Qiitaに数年前から投稿していますが、延3日間で「1000 いいね」をもらいました。今までの最大いいねが20…

ソースコードレビューのポイントをまとめる
ソースコードレビュー時のポイントを各所のブログから集めてまとめました。以下 https://gist.github.com/s-yoshiki/9e446d69cf388703a4711f7e69cba173

AWSソリューションアーキテクト参考資料集
ブラックベルト サービス別資料 AWS Well-Architected フレームワーク 特に目を通すべき資料の一覧です。 ブラックベルト https://aws.amazon.com/jp/aws-jp-introduction/ サービス別資料 https://aws…

AWS ソリューションアーキテクト不合格体験記を集める
AWSソリューションアーキテクトアソシエイトに1回落ちたけど勉強し直して合格した話 AWS認定ソリューションアーキテクトアソシエイト(SAA)不合格体験記 非エンジニアがAWSソリューションアーキテクトに合格するまで AWSソリューションアーキテクト認定に落ちた話 AWS…

shields.io用アイコンジェネレータを作ってみた
デモ 情報 参考 ソース shields.io用アイコンジェネレータを作ってみました。 デモ 情報 Vue + codesandboxで作ってみました。 詳しい作り方はここを参考にしてください。 参考 https://tech-blog.s-yoshiki…

shields.ioで技術系のアイコンをたくさん作ってみる
shields.ioについて カスタムバッジを作る Color カスタムスタイル simpleicons おすすめアイコンを作った 言語系 ライブラリ・フレームワーク OS ミドルウェア エディタ・IDE…

google.52ecy.topとかいうサイトからアクセスがあった
はじめに nmapしてみた whoisしてみた DNSを調べてみる はじめに このブログのアクセスログのリファラに google.52ecy.top というものがあった。 https://google.52ecy.top/ とりあえず、アクセスしてみるとgoogleのtop…

ブラウザ上でWindowsXPが動く??
紹介 エミュレータでもVMでもなく Reactによって作られたものだそうです。 完成度高ぃ demohttps://t.co/mjBg4pkgNa pic.twitter.com/s0bkHFyKHO — s-yoshiki…

カスみたいな技術ブログが1日100PVを超えてしまいました。
現時点でのブログのステータス 最近の1日あたりのアクセス数の推移 記事数は78 月間アクセス数は約1500 ブログのポリシー 些細なことを書き続ける ニッチなネタを書く 開設からここまで 思いつきで始めたようなカスみたいな技術ブログが1日100PV…

最新の投稿

Python poetryでパッケージ開発 PyPIで公開 Pytestでテスト CIをGitHub Actionsで回す
Poetry でパッケージ開発 pytest でユニットテストを実施しカバレッジを算出する パッケージをビルドし PyPI で公開する 検証環境にデプロイする 本番環境にデプロイする GitHub Actions で CI を回す codecovの設定 GitHub…

Perlでconstant(定数)をhashのキーに使う
ハマった事象 解決方法 1 括弧をつける 2 & をつける 参考にしたサイト Perlでconstant(定数)をhash…

php-fpmのステータスページを表示 Apache & htaccess
試した環境 php-fpm の pm.status_path について php-fpmのconfの設定 .htaccess の設定 アクセスしてみる 参考にしたサイト Apache環境で php-fpm のステータスページを htaccess…

DBクライアントツールはDBeaverをおすすめしたい
DBeaver について 特徴 対応DB 対応OS 利用環境 アーカイブ インストール windows mac Linux コネクションの作成 SQLを実行する その他 CloudBeaverについて 今までいくつかのDB…

CentOS8 に Oracle12.2 clientをインストールする
実施した環境 セットアップ clientツールの 準備 インストール 環境変数にパスを通す 実行 libnsl.so.1: cannot open shared object file と表示される場合 CentOS8 に Oracle12.2 client…

フェールセーフやフェールソフト・フールプルーフ 障害対策用語の整理

JSで32ビット符号付き整数に対してのビット演算でハマった
具体例 参考にしたサイト JSでサブネットマスクの計算を行おうとしたとき、ビット演算でハマりました。その時のメモです。 JSでサブネットマスクの計算 JSでビット演算子を利用する場合 3…

Gitにプロキシを設定する
プロキシを設定する 確認 Gitでプロキシを通しておくメモです。 プロキシを設定する 以下のコマンドでproxyを通します。 ※ がプロキシのURL…

JSでIPアドレスがサブネットマスクで指定した範囲内にあるか判定する
IPアドレスが指定した範囲内にあるかどうか判定 参考にしたサイト JSでIPアドレス(IPv4)が指定したサブネットの範囲に含まれるか判定するロジックを作った時の記録です。 IPアドレスが指定した範囲内にあるかどうか判定 処理としては、IP…

プログラムの数値計算で発生する誤差の種類 丸め誤差・打ち切り誤差・桁落ち
はじめに 誤差の種類 丸め誤差 打ち切り誤差 桁落ち 情報落ち 桁溢れ誤差 参考にしたサイト コンピュータで出てくる誤差はいくつかありますが、 それらをコードに落として整理しました。 はじめに 例えば の計算の答えは 0.6666666666…

Tags

Dates

© 2021   404 motivation not found