diff --git a/lib/core/regex.js b/lib/core/regex.js index 9dd13a42..8180727d 100644 --- a/lib/core/regex.js +++ b/lib/core/regex.js @@ -6,7 +6,7 @@ let kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' + '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+' kanji = kanji.replace(/u/g, '\\u') -const byte = '(?:(?![A-Z0-9 $%*+\\-./:]|' + kanji + ')(?:.|[\r\n]))+' +const byte = '(?:(?![A-Z0-9 $%*+\\-./:]|' + kanji + ')(?:.|[\r\n\\u2028\\u2029]))+' exports.KANJI = new RegExp(kanji, 'g') exports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\-./:]+', 'g') diff --git a/test/unit/core/segments.test.js b/test/unit/core/segments.test.js index ecbbb5a3..df968c1f 100644 --- a/test/unit/core/segments.test.js +++ b/test/unit/core/segments.test.js @@ -157,6 +157,20 @@ const kanjiTestData = [ { data: '皿a\n', mode: Mode.BYTE }, { data: '晒三', mode: Mode.KANJI } ] + }, + { + input: '皿a\u2028晒三', + result: [ + { data: '皿a\u2028', mode: Mode.BYTE }, + { data: '晒三', mode: Mode.KANJI } + ] + }, + { + input: '皿a\u2029晒三', + result: [ + { data: '皿a\u2029', mode: Mode.BYTE }, + { data: '晒三', mode: Mode.KANJI } + ] } ]