回答編集履歴

3

日本語表現を訂正

2017/04/21 03:28

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- javascipt上で文字はUTF16で表現されるため、ほとんどの文字はjavascript文字で表現できるのですが、漢字にはUTF16一文字では表現できないものがありそれらはサロゲートペアと呼ばれるUTF16コード2つで一文字になります。つまりjavascript上length===2であるようなstringが漢字一文字を表すことがあるのですね。そのような文字コードの範囲は以下のようになってます。
17
+ javascipt上で文字はUTF16で表現されるため、ほとんどの文字はjavascriptのstring一文字で表現できるのですが、漢字にはUTF16一文字では表現できないものがあります。それらの文字はサロゲートペアと呼ばれ、「string二文字」で一つの文字につまりjavascript上length===2であるようなstringが漢字一文字を表すことがあるのですね。そのような文字コードの範囲は以下のようになってます。
18
18
 
19
19
 
20
20
 

2

追記

2017/04/21 03:28

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -10,7 +10,29 @@
10
10
 
11
11
 
12
12
 
13
- 訂正質問コメントで下記やりたことではないと分かりましたので、これ以降は無視てくさい
13
+ 追記2Lhankor_Mhyさん解説してくださってので、しだけ補足的にコメントします
14
+
15
+
16
+
17
+ javascipt上で文字はUTF16で表現されるため、ほとんどの文字はjavascriptでの1文字で表現できるのですが、漢字にはUTF16一文字では表現できないものがあり、それらはサロゲートペアと呼ばれるUTF16コード2つで一文字になります。つまりjavascript上length===2であるようなstringが漢字一文字を表すことがあるのですね。そのような文字コードの範囲は以下のようになってます。
18
+
19
+
20
+
21
+ \uD800-\uDBFFこれはサロゲートペア1文字目の範囲
22
+
23
+ \uDC00-\uDFFFこれがサロゲートペア2文字目の範囲
24
+
25
+
26
+
27
+ 修正後の質問にかかれているパターンにはこのサロゲートペア範囲を対象にしていますのでこの点も注意して読み解いてみてください!
28
+
29
+
30
+
31
+ ----
32
+
33
+
34
+
35
+ 訂正1:質問コメントで下記がやりたいことではないと分かりましたので、これ以降は無視してください。
14
36
 
15
37
 
16
38
 

1

訂正

2017/04/20 11:36

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -3,6 +3,16 @@
3
3
 
4
4
 
5
5
  そういう判定をしたい場合、UNICODEのコードポイント表を参照して「ここからこの範囲を除外」というように調べないといけないと思います。
6
+
7
+
8
+
9
+ ----
10
+
11
+
12
+
13
+ 訂正:質問コメントで下記がやりたいことではないと分かりましたので、これ以降は無視してください。
14
+
15
+
6
16
 
7
17
 
8
18