QA@IT
«回答へ戻る

正規表現中の行数指定が変わった部分の補足を追加

5599
 target_s.match(/.*(?:\n.*){1}/)[0].length
 ```
 になりますかね。
+2行目末尾を取るために{1}を指定することになります。
+1行目の末尾なら{0}にすれば問題ないと思います。
 
 実際に使う場合正規表現リテラルに変数は仕込めませんので
 ```javascript
var target_s="abcc
ddeff
afew
";

target_s.match(/(?:.*\n){2}/)[0].length

これで11が返ります(改行コードが\nの場合)。
2行目の最終文字ならここから 1を引くことになります。

ただ、最後の文字の前に改行コードが入っているか不定な場合は

target_s.match(/.*(?:\n.*){1}/)[0].length

になりますかね。
2行目末尾を取るために{1}を指定することになります。
1行目の末尾なら{0}にすれば問題ないと思います。

実際に使う場合正規表現リテラルに変数は仕込めませんので

var line = 2;
target_s.match(new RegExp(".*(?:\n.*){" + (line - 1) + "}"))[0].length;

こんな感じですかね。

\rや\r\nの場合やマッチしない場合は考慮されていませんのでご注意を。

```javascript
var target_s="abcc
ddeff
afew
";

target_s.match(/(?:.*\n){2}/)[0].length
```
これで11が返ります(改行コードが\nの場合)。
2行目の最終文字ならここから 1を引くことになります。

ただ、最後の文字の前に改行コードが入っているか不定な場合は
```javascript
target_s.match(/.*(?:\n.*){1}/)[0].length
```
になりますかね。
2行目末尾を取るために{1}を指定することになります。
1行目の末尾なら{0}にすれば問題ないと思います。

実際に使う場合正規表現リテラルに変数は仕込めませんので
```javascript
var line = 2;
target_s.match(new RegExp(".*(?:\n.*){" + (line - 1) + "}"))[0].length;
```
こんな感じですかね。

\rや\r\nの場合やマッチしない場合は考慮されていませんのでご注意を。

回答を投稿

var target_s="abcc
ddeff
afew
";

target_s.match(/(?:.*\n){2}/)[0].length

これで11が返ります(改行コードが\nの場合)。
2行目の最終文字ならここから 1を引くことになります。

ただ、最後の文字の前に改行コードが入っているか不定な場合は

target_s.match(/.*(?:\n.*){1}/)[0].length

になりますかね。

実際に使う場合正規表現リテラルに変数は仕込めませんので

var line = 2;
target_s.match(new RegExp(".*(?:\n.*){" + (line - 1) + "}"))[0].length;

こんな感じですかね。

\rや\r\nの場合やマッチしない場合は考慮されていませんのでご注意を。

```javascript
var target_s="abcc
ddeff
afew
";

target_s.match(/(?:.*\n){2}/)[0].length
```
これで11が返ります(改行コードが\nの場合)。
2行目の最終文字ならここから 1を引くことになります。

ただ、最後の文字の前に改行コードが入っているか不定な場合は
```javascript
target_s.match(/.*(?:\n.*){1}/)[0].length
```
になりますかね。

実際に使う場合正規表現リテラルに変数は仕込めませんので
```javascript
var line = 2;
target_s.match(new RegExp(".*(?:\n.*){" + (line - 1) + "}"))[0].length;
```
こんな感じですかね。

\rや\r\nの場合やマッチしない場合は考慮されていませんのでご注意を。