我节省了许多与params[:number].gsub(/\D/,'')
,但我不想要去除的加号:+
GSUB数字和+
例如,如果一个用户保存数+1 (516) 949-9508
其保存为15169499508
但如何才能保存+
as +15169499508
?
我节省了许多与params[:number].gsub(/\D/,'')
,但我不想要去除的加号:+
GSUB数字和+
例如,如果一个用户保存数+1 (516) 949-9508
其保存为15169499508
但如何才能保存+
as +15169499508
?
如果你没有任何语法规则,delete
会工作得很好:
'+1 (516) 949-9508'.delete('^0-9+') #=> "+15169499508"
我明白你只想保持一个加只在开始字符串。您需要使用:
.gsub(/\A(\+)|\D+/, '\1')
这里,\A(\+)
分支相匹配的文字加在字符串的开始。第二个分支是您的\D
,它匹配所有字符,但匹配数字,仅匹配+
量词,匹配1个或多个匹配项。 \1
反向引用会在结果字符串中恢复该初始加号。
就我所知,你只想在字符串的开头保留一个加号?如果你更喜欢别名,使用'.gsub(/ ^(\ +)| \ D + /,'\ 1')' –