From 8d032fb0f072f8ac03e6790eb34e8d3545427068 Mon Sep 17 00:00:00 2001 From: Hiroki Kiyohara Date: Thu, 11 Mar 2021 06:43:57 +0900 Subject: [PATCH] =?UTF-8?q?fix(2.2.2):=20=E3=80=9C=E3=81=A4=E3=81=AE?= =?UTF-8?q?=E6=85=A3=E7=94=A8=E5=8F=A5=E3=81=AB=E5=AF=BE=E5=BF=9C=20(#85)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/2.2.2.js | 18 ++++++++++++++---- test/2.2.2-test.js | 19 ++++++++++++++++++- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/2.2.2.js b/src/2.2.2.js index 2887982..ee42796 100644 --- a/src/2.2.2.js +++ b/src/2.2.2.js @@ -156,9 +156,9 @@ function reporter(context) { }; // ignorePatternにマッチしたらmatchFnを呼ばないようにする(エラーを無視する) - const ignoreWhenMatched = (ignorePattern, matchFn) => { + const ignoreWhenMatched = (ignorePatterns, matchFn) => { return (text, pattern, match) => { - if (ignorePattern.test(text)) { + if (ignorePatterns.some(p => p.test(text))) { return null; } else { return matchFn(text, pattern, match); @@ -172,9 +172,19 @@ function reporter(context) { matchToReplace( text, /([一二三四五六七八九十壱弐参拾百〇]+)[兆億万]/g, - ignoreWhenMatched(/(数|何)([一二三四五六七八九十壱弐参拾百〇]+)[兆億万]/g, toNumber) + ignoreWhenMatched([/(数|何)([一二三四五六七八九十壱弐参拾百〇]+)[兆億万]/g], toNumber) + ); + matchToReplace( + text, + /([一二三四五六七八九十壱弐参拾百〇]+)つ/g, + ignoreWhenMatched( + [ + /[一二三四五六七八九]つ(返事|子|ひとつ|星|編|葉|橋|と[無な]い|に一つ)/g, + /(ただ|唯|[女男]手|穴|瓜|馬鹿の)[一二]つ/g + ], + toNumber + ) ); - matchToReplace(text, /([一二三四五六七八九十壱弐参拾百〇]+)つ/g, toNumber); matchToReplace(text, /([一二三四五六七八九十壱弐参拾百〇]+)回/g, toNumber); matchToReplace(text, /([一二三四五六七八九十壱弐参拾百〇]+)か月/g, toNumber); matchToReplace(text, /([一二三四五六七八九十壱弐参拾百〇]+)番目/g, toNumber); diff --git a/test/2.2.2-test.js b/test/2.2.2-test.js index 155ee08..67f2d16 100644 --- a/test/2.2.2-test.js +++ b/test/2.2.2-test.js @@ -97,7 +97,24 @@ tester.run("2.2.2.算用数字と漢数字の使い分け", rule, { "五大陸", "数十億", "何十万", - "しばしば数十万行以上に" + "しばしば数十万行以上に", + "二つ返事でOKした", + "三つ子の魂百まで", + "一つひとつ確かめる", + "ミシュラン二つ星", + "三つ編にする", + "四つ葉のクローバー", + "四つ橋線", + "二つと無い宝石", + "二つとない宝石", + "二つに一つしかない", + "ただ一つの弱点", + "唯一つの欠点", + "女手一つで育てた", + "男手一つで育てた", + "人を呪わば穴二つ", + "瓜二つの姉妹", + "馬鹿の一つ覚えだ" ], invalid: [ {