0

このシナリオがあるかどうかをどのように検出しますか、この入力を取得します

3b => allow
4b => allow
55b => allow
1111bbbb => allow
num45 => no !

与えられた場合は、数字以外のすべての文字も削除したいと思います

3b => 3
555B => 555
11 => 11

与えられた入力が数値であるかどうかを確認しようとしましたが、この条件は私の知識の範囲外です。

お手数をおかけしますが、よろしくお願いいたします。

4

5 に答える 5

2

以下を使用できます。

/\A(\d+)[a-z]*\z/i

式が一致する場合、目的の番号は最初のキャプチャ グループに含まれます。

Rubularでの例。(デモンストレーションのためだけに / の代わりに / を使用します。 / を使用する必要^$あり\Aます。)\z\A\z

于 2013-03-10T00:09:37.553 に答える
2

これにより、整数 + 文字列が検索され、整数に変換されます。文字列 + 整数の入力は無視されます。

input = '45num'

if input.match(/\d+[a-zA-Z]+/)
  result = input.to_i
end

result => 45
于 2013-03-10T00:09:47.943 に答える
1

あなたは本当に使いたいです:str[/\A\d+/]-これはあなたに先頭の数字またはnilを与えます。

于 2013-03-10T00:25:32.743 に答える
0

うーん、私は正規表現の忍者ではありませんが^([\d]+)、数字だけをキャプチャするために: を使用できると思います。ここで試してみてください

于 2013-03-10T00:07:53.443 に答える
-1

文字列が数字で始まる場合

!/^[0-9]/.match(@variable).nil?

もしそうなら、数字の部分だけを取得します

   @variable = @variable.gsub(/[^0-9]/, '')
于 2013-03-10T00:02:56.510 に答える