javascript
1'マジメ'.indexOf('ジ'); 2//1を返すはずだが、-1が返る
ブラウザのコンソールで実行しても結果が-1になります。
「マ」や「メ」ならマッチします。
日本語でindexOfを使用すると不具合が起きるのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
'マジメ'
の方のジ
をコピペして
'ジ'.charCodeAt(0)
をすると 12471 が返り、
indexOf('ジ');
の方のジ
をコピペして
'ジ'.charCodeAt(0)
をすると 12472 が返りますね。
文字コードが違うためにマッチしていないようです。
「ジ 12471 12472」で検索したら以下の記事が見つかったので参考にしてみてください。
https://naomo.co.jp/2015/03/mac上でのカタカナの濁点はたまに問題を引き起こ/
投稿2019/10/18 09:56
編集2019/10/18 09:57総合スコア5158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
別の文字だからです。
ジ_ジ
を(下記サイトで)数値参照に変換すると ジ_ジ
となり、ジ
とジ
が別のコードであらわされていることがわかると思います。
【エンコードマニアックス】
http://www.encodemaniax.com/?charset=utf-8&data=ジ_ジ
【NFCとNFDに気をつける - Qiita】
https://qiita.com/scrpgil/items/19230f636851d291df0f
【Unicodeでは濁点や半濁点を別扱いしてることがあるので結合した - はてなの鴨澤】
https://kamosawa.hatenablog.com/entry/20151015
JavaScript ではnormalize()
を使えば解消しそうです。
【String.prototype.normalizeが実装された - JS.next】
http://js-next.hatenablog.com/entry/2014/01/31/184907
【String.prototype.normalize() - JavaScript | MDN】
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
投稿2019/10/18 09:53
総合スコア69596
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/18 10:03