質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

4回答

962閲覧

js 正規表現 数値を4桁以下と5桁以上の文字列に分けたい

L85A2

総合スコア60

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/10/24 07:06

編集2018/10/24 07:21

123456789
としたら

1234の文字列にできる正規表現(4桁以下を取得する)と
56789の文字列にできる正規表現(5桁以上を取得できる)の二つを教えてもらえるでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2018/10/24 07:09

「12345」であれば「1234/5」、「1234567890」は「1234/567890」のような区切りで間違いないでしょうか。
L85A2

2018/10/24 07:13

はい。おねがいします。
L85A2

2018/10/24 07:17

あ すみません区切ると言い方が良くなかったです。1234567890の場合 1234をとる正規表現 567890をとる正規表現を教えてもらえるでしょうか? あとで質問内容修正します
maisumakun

2018/10/24 07:18

どうしても正規表現でなければならない理由はありますか?
L85A2

2018/10/24 07:22

いえ そんなことはありません。文字列で取得できるならなんでもいいです。
guest

回答4

0

javascript

1var str = '123456789'; 2 3// 最初4文字 4var first_four = str.substr(0, 4); 5// 残り 6var rest = str.substr(4); 7

投稿2018/10/24 07:35

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

L85A2

2018/10/24 07:47

substrというメソッドがあるのですね 回答ありがとうございます勉強になりました
guest

0

ベストアンサー

JavaScript

1var str = "123456789"; 2// 正規表現を使う 3var array = str.match(/^.{4}|.+/g) 4console.log(array[0]); // 1234 5console.log(array[1]); // 56789 6 7// sliceのような文字列を分割する関数を使う 8console.log(str.slice(0, 4)) // 1234 9console.log(str.slice(4)) // 56789

投稿2018/10/24 07:19

編集2018/10/24 07:26
root_jp

総合スコア4666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

L85A2

2018/10/24 07:44

回答ありがとうございます。 うまくできそうです。 /^.{4}|.+/gの確認なのですが ^ 先頭から {4} 四つ | または . 文字以外 + 直前の文字1回以上の繰り返しマッチ みたいな認識でよいのでしょうか? いまいち正規表現がわかっていません
root_jp

2018/10/24 08:16

そうです。その通りです。 必ず1234と56789の両方が必要なのであれば一発でとれる正規表現でもいいですが、 どちらか一方にしか用がない時もあるのであれば、回答にある2つ目のやり方であるsliceでもいいと思います。
root_jp

2018/10/24 08:18

あ、すみません。「.」 が文字以外ってのは認識が違うかもしれません。 「.」は何でもいい一文字です。 .+ で何でもいい文字の1回以上の繰り返しですね。
guest

0

あえてsplit()縛り

JavaScript

1// Chromeなら後読みができる 2//var result = '123456789'.split(/(?<=^.{4}).*?/); 3var result = '123456789'.split(/(^.{4})/).filter(function(v, i) { return i > 0; }); 4console.log(result); // ["1234", "56789"]

投稿2018/10/24 07:47

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

javascript

1s.replace(/(.{4})(.+)/g, "$1,$2").split(',')

投稿2018/10/24 07:12

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問