2017-08-31 14 views
0

Rails内では、ハッシュタグである文字列に対して、有効であることをテストしたい(英数字とアンダースコアのみ)。先頭文字の値に基づいて先頭文字にのみRegEx一致を適用する

if (string.first == '#') 
    string.match(/^[#][\w]+$/) 
else 
    string.match(/^[\w]+$/) 

どのように試合を行うための正規表現を作るだけで、それならば#文字を可能にする。しかし、私は、私はそれをテストすることができ、最初の文字が#

するかどうかを事前に知っていません主役は?

+1

'? '演算子は、前の文字の0または1を示します。正規表現の先頭にある '#? 'はあなたの問題を解決するかもしれません。 –

答えて

2

?正規表現の数値限定器は、zero or one occurrenceを意味します。したがって、正規表現は次のように変換されます:

string.match(/^#?\w+$/) 
+0

@Totoありがとう、編集済み –

関連する問題