Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Regex to test for presence of Japanese characters
// REFERENCE UNICODE TABLES:
// http://www.rikai.com/library/kanjitables/kanji_codes.unicode.shtml
// http://www.tamasoft.co.jp/en/general-info/unicode.html
//
// TEST EDITOR:
// http://www.gethifi.com/tools/regex
//
// UNICODE RANGE : DESCRIPTION
//
// 3000-303F : punctuation
// 3040-309F : hiragana
// 30A0-30FF : katakana
// FF00-FFEF : Full-width roman + half-width katakana
// 4E00-9FAF : Common and uncommon kanji
//
// Non-Japanese punctuation/formatting characters commonly used in Japanese text
// 2605-2606 : Stars
// 2190-2195 : Arrows
// u203B : Weird asterisk thing
var regex = /[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|\u203B/g;
var input = "input string";
if(regex.test(input)) {
console.log("Japanese characters found")
}
else {
console.log("No Japanese characters");
}
@ryanmcgrath

This comment has been minimized.

Show comment Hide comment
@ryanmcgrath

ryanmcgrath May 20, 2011

This is a kickass bit of code right here.

Owner

ryanmcgrath commented May 20, 2011

This is a kickass bit of code right here.

@pinopino

This comment has been minimized.

Show comment Hide comment
@pinopino

pinopino Jan 15, 2014

it works! thank you for your amazing work!

it works! thank you for your amazing work!

@swathiPaipalle

This comment has been minimized.

Show comment Hide comment
@swathiPaipalle

swathiPaipalle Jan 24, 2014

Thanks! It helps me

Thanks! It helps me

@FlashJunior

This comment has been minimized.

Show comment Hide comment
@FlashJunior

FlashJunior Nov 17, 2014

thx!

thx!

@koreahadif

This comment has been minimized.

Show comment Hide comment
@koreahadif

koreahadif Dec 4, 2014

Thanks~!! It works

Thanks~!! It works

@ram4git

This comment has been minimized.

Show comment Hide comment
@ram4git

ram4git Apr 15, 2017

Why can't the initial few or conditions be consolidated into [\u3000-\u30FF]?

ram4git commented Apr 15, 2017

Why can't the initial few or conditions be consolidated into [\u3000-\u30FF]?

@den-chan

This comment has been minimized.

Show comment Hide comment
@den-chan

den-chan Apr 30, 2017

As a side note, the characters from 0x4e00 to 0x9faf include Chinese-only characters. The following code will give you a list of the standard 6355 Japanese kanji:

for (var i = 0x4e00, acc=[]; i < 0x9faf; i++) acc.push(String.fromCharCode(i));
var sortedChars = acc.sort(Intl.Collator("ja-JP").compare);
var level1Kanji = sortedChars.slice(0, 2965); // JIS X 0208 - Level 1 Kanji (2965 characters)
var level2Kanji = sortedChars.slice(2965, 6355) // JIS X 0208 - Level 2 Kanji (3390 characters)

den-chan commented Apr 30, 2017

As a side note, the characters from 0x4e00 to 0x9faf include Chinese-only characters. The following code will give you a list of the standard 6355 Japanese kanji:

for (var i = 0x4e00, acc=[]; i < 0x9faf; i++) acc.push(String.fromCharCode(i));
var sortedChars = acc.sort(Intl.Collator("ja-JP").compare);
var level1Kanji = sortedChars.slice(0, 2965); // JIS X 0208 - Level 1 Kanji (2965 characters)
var level2Kanji = sortedChars.slice(2965, 6355) // JIS X 0208 - Level 2 Kanji (3390 characters)
@mortress

This comment has been minimized.

Show comment Hide comment
@mortress

mortress Jun 30, 2017

Thanks! It helps me

Thanks! It helps me

@HanhPhamPhuoc

This comment has been minimized.

Show comment Hide comment
@HanhPhamPhuoc

HanhPhamPhuoc Aug 22, 2017

Thanks, this helped me too.

Thanks, this helped me too.

@AndrewThian

This comment has been minimized.

Show comment Hide comment
@AndrewThian

AndrewThian Nov 17, 2017

my god you lifesaver <3 hearts and cookies!

AndrewThian commented Nov 17, 2017

my god you lifesaver <3 hearts and cookies!

@paulgaumer

This comment has been minimized.

Show comment Hide comment
@paulgaumer

paulgaumer Dec 4, 2017

Big thank you, this helped a lot!

Big thank you, this helped a lot!

@blcsntb

This comment has been minimized.

Show comment Hide comment
@blcsntb

blcsntb May 22, 2018

Thank you!

blcsntb commented May 22, 2018

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment