1

次のいずれかの形式で URL を取得します。

- ?M=Foo bar
- ?M=Foo%20bar
- ?M=%20Foo_bar
- ?M=Foo bar?
- ?M=F00_bar
- ?M=Foo#1bar_do

または、単語、特殊文字、数字の任意の組み合わせ。

私は単に値を取得することができます

 params[:M]

問題 :

しかし、今私は出力を変換し、変数 'm' のように保存したいと思います:

 m = FooBar

1) ここでは、他のすべての文字 ((アンダースコア)_、#1、スペース、? など) と数字を無視し、アルファベットのみを取ります。

2) 結果を組み合わせて、次のような形式にします。

FooBar
FooBarDo

私は正規表現が得意ではないので、これを修正するための助けを本当に感謝します

4

3 に答える 3

2

これを使用してそれを行う1つの方法を次に示しますscan

m = "Foo%20bar"
m.scan(/[A-Za-z]/).join #=> Foobar

m = "Foo#1bar_do"
m.scan(/[A-Za-z]/).join #=> Foobardo

m = "F00_bar"
m.scan(/[A-Za-z]/).join #=> Fbar

したがって、あなたの場合、次のようなものを使用します。

params[:M].scan(/[A-Za-z]/).join
于 2013-10-15T09:33:29.590 に答える
1

これをチェックして、

m.scan(/[a-z]+/i).join

>> m = "Foo bar"
=> "Foo bar"
>> m.scan(/[a-z]+/i).join
=> "Foobar"
>> m = "Foo%20bar"
=> "Foo%20bar"
>> m.scan(/[a-z]+/i).join
=> "Foobar"
>> m = "%20Foo_bar"
=> "%20Foo_bar"
>> m.scan(/[a-z]+/i).join
=> "Foobar"
>> m = "Foo bar?"
=> "Foo bar?"
>> m.scan(/[a-z]+/i).join
=> "Foobar"
>> m = "F00_bar"
=> "F00_bar"
>> m.scan(/[a-z]+/i).join
=> "Fbar"
>> m = "Foo#1bar_do"
=> "Foo#1bar_do"
>> m.scan(/[a-z]+/i).join
=> "Foobardo"
于 2013-10-15T10:25:02.053 に答える