summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-11-24 17:18:11 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-11-24 17:18:11 +0900
commitdbbc416095ae39541dc3f3de1ce24966a290ac61 (patch)
tree5f77c95c4a540b277b252fd6d19f7f86031c35d2
parentUpdate dependency :rocket: (diff)
downloadmisskey-dbbc416095ae39541dc3f3de1ce24966a290ac61.tar.gz
misskey-dbbc416095ae39541dc3f3de1ce24966a290ac61.tar.bz2
misskey-dbbc416095ae39541dc3f3de1ce24966a290ac61.zip
[MFM] Fix hashtag detection
-rw-r--r--src/mfm/parser.ts2
-rw-r--r--test/mfm.ts7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/mfm/parser.ts b/src/mfm/parser.ts
index 5a20c7ef2b..3edb23b602 100644
--- a/src/mfm/parser.ts
+++ b/src/mfm/parser.ts
@@ -112,7 +112,7 @@ const mfm = P.createLanguage({
const text = input.substr(i);
const match = text.match(/^#([^\s\.,!\?#]+)/i);
if (!match) return P.makeFailure(i, 'not a hashtag');
- if (match[1].match(/[0-9]+/)) return P.makeFailure(i, 'not a hashtag');
+ if (match[1].match(/^[0-9]+$/)) return P.makeFailure(i, 'not a hashtag');
if (input[i - 1] != '\n' && input[i - 1] != ' ' && input[i - 1] != null) return P.makeFailure(i, 'require space before "#"');
return P.makeSuccess(i + match[0].length, makeNode('hashtag', { hashtag: match[1] }));
}),
diff --git a/test/mfm.ts b/test/mfm.ts
index 8ca09c7417..206105bc56 100644
--- a/test/mfm.ts
+++ b/test/mfm.ts
@@ -205,6 +205,13 @@ describe('Text', () => {
], tokens);
});
+ it('allow including number', () => {
+ const tokens = analyze('#foo123');
+ assert.deepEqual([
+ node('hashtag', { hashtag: 'foo123' }),
+ ], tokens);
+ });
+
it('disallow number only', () => {
const tokens = analyze('#123');
assert.deepEqual([