回答編集履歴

4

追加

2023/04/08 16:03

投稿

NKTIDKSG
NKTIDKSG

スコア679

test CHANGED
@@ -19,3 +19,11 @@
19
19
 
20
20
  console.log(repeated);
21
21
  ```
22
+
23
+ ### コメントに対してのコード
24
+ >まとめ買い商品の1個あたりの値段を表示したいということが目的なんです。 そしてまとめ買い商品の個数は商品タイトルにしかなく商品タイトルから個数を抽出する必要があるような形なんですが、個数は変動するため正規表現を使うことが必要であると考えています。 具体的には下記のような商品タイトルになります。 [送料無料][10個]商品名 賞味期限0000.00.00[お早めにお買い上げくださいませ] [10個]の数字と単位は変動します。 一旦、単位は「個」だけだと考えてロジックを考えているような状態です。
25
+ ```js
26
+ var string = '[送料無料][10個]商品名 賞味期限0000.00.00[お早めにお買い上げくださいませ]'
27
+ string = string.match(/(\d+)個/);
28
+ console.log(string[1]);
29
+ ```

3

修正

2023/04/08 15:30

投稿

NKTIDKSG
NKTIDKSG

スコア679

test CHANGED
@@ -5,18 +5,17 @@
5
5
  下記のようなやり方もあります。
6
6
 
7
7
  ```js
8
- var string = 'オレは海賊、将来海賊王になる男だ';
8
+ var string = 'オレは海賊、将来海賊王になる男だ';
9
- var target = "海賊王";
9
+ var target = "海賊王";
10
10
 
11
- //対象文字列以外を削除
11
+ //対象文字列以外を削除
12
- var result = string.split(target).join("");
12
+ var result = string.split(target).join("");
13
- console.log(result);
14
13
 
15
- //前後の文字数をカウント
14
+ //前後の文字数をカウント
16
- var count = (string.length - result.length) / target.length;
15
+ var count = (string.length - result.length) / target.length;
17
16
 
18
- //カウント分繰り返す
17
+ //カウント分繰り返す
19
- var repeated = target.repeat(count);
18
+ var repeated = target.repeat(count);
20
19
 
21
- console.log(repeated);
20
+ console.log(repeated);
22
21
  ```

2

修正

2023/04/08 15:29

投稿

NKTIDKSG
NKTIDKSG

スコア679

test CHANGED
@@ -1,8 +1,22 @@
1
+ 特定文字列以外を削除したい目的はなんでしょうか?
2
+ 結果として特定文字列が残るだけだと思いますが。
3
+
4
+ 意図次第ですが、正規表現使うと複雑になるため、
1
- ミソは```否定先読み```です。
5
+ 下記のようなやり方もあります。
2
- 意味は調べてみてください。
3
6
 
4
7
  ```js
5
- var string = 'オレは海賊、将来海賊王になる男だ'
8
+ var string = 'オレは海賊、将来海賊王になる男だ';
9
+ var target = "海賊王";
10
+
11
+ //対象文字列以外を削除
6
- string = string.replace(/^(?!.*海賊王).+/g, "");
12
+ var result = string.split(target).join("");
7
- console.log(string);
13
+ console.log(result);
14
+
15
+ //前後の文字数をカウント
16
+ var count = (string.length - result.length) / target.length;
17
+
18
+ //カウント分繰り返す
19
+ var repeated = target.repeat(count);
20
+
21
+ console.log(repeated);
8
22
  ```

1

修正

2023/04/08 15:05

投稿

NKTIDKSG
NKTIDKSG

スコア679

test CHANGED
@@ -1,3 +1,6 @@
1
+ ミソは```否定先読み```です。
2
+ 意味は調べてみてください。
3
+
1
4
  ```js
2
5
  var string = 'オレは海賊、将来海賊王になる男だ'
3
6
  string = string.replace(/^(?!.*海賊王).+/g, "");