回答編集履歴

1

コメントへの返答を追記

2021/02/18 06:57

投稿

AT_2nd
AT_2nd

スコア266

test CHANGED
@@ -29,3 +29,35 @@
29
29
  念の為、変換の対象が増えたり2文字以上になっても対応できるようにしてあります。
30
30
 
31
31
  こんなんでどうでしょう。
32
+
33
+
34
+
35
+ ※追記
36
+
37
+ HTMLのタグ風にしたいなら、こんな感じです。
38
+
39
+ ```javascript
40
+
41
+ const value = "abc";
42
+
43
+ const dictionary =
44
+
45
+ {
46
+
47
+ a:"ab",
48
+
49
+ b:"bc",
50
+
51
+ c:"ca"
52
+
53
+ };
54
+
55
+ const keys = Object.keys(dictionary).sort((a,b)=>b.length-a.length||a>b);
56
+
57
+ const pattern = new RegExp(keys.join("|"),"gi");
58
+
59
+ const result = value.replace(pattern,m=>`<${dictionary[m.toLowerCase()]}>${m}</${dictionary[m.toLowerCase()]}>`);
60
+
61
+ console.log(result);
62
+
63
+ ```