我正在使用params[:number].gsub(/\D/,'')
保存一个号码,但我不想删除加号:+
例如,如果用户保存了号码+1 (516) 949-9508
,则会将其保存为15169499508
,但我们如何将+
保存为+15169499508
?
答案 0 :(得分:4)
在Ruby中\D
只是[^0-9]
的别名。您可以明确设置[^0-9+]
:
params[:number].gsub(/[^0-9+]/,'')
答案 1 :(得分:4)
我知道你只想在字符串的开头加一个加号。你需要使用:
.gsub(/\A(\+)|\D+/, '\1')
这里,\A(\+)
分支匹配字符串开头的文字加。第二个分支是您的\D
,它匹配所有字符但数字,只有一个匹配1个或多个匹配项的+
量词。 \1
反向引用在结果字符串中恢复该初始加号。
答案 2 :(得分:2)
如果您没有任何语法规则,delete
可以正常使用:
'+1 (516) 949-9508'.delete('^0-9+') #=> "+15169499508"