我是ruby on rails的新手。我已经使用表格中的POST传递了参数ISDCode,AreaCode和Telephone number。
我有一个字符串,其中包含在变量ISDCode中传递的countryName(ISDCode)格式的信息。例如“美利坚合众国(+1)”。
现在我只想在数据库中保存ISDCode的值。
从字符串中提取ISD代码的理想方法是什么?
我应该在用户POST表单之前在Javascript中提取ISD代码,还是应该使用回调在模型中提取它?
正则表达式是提取信息的唯一方法吗?
答案 0 :(得分:1)
使用正则表达式匹配ISDcode
"United States of America(+1)" =~ /(\+[\d]+)/
puts $1
答案 1 :(得分:1)
由于字符串来自自动完成,因此ISDcodes应存在于您的数据库中。所以最好的解决方案可能是包含一个额外的参数(带有隐藏输入),比如isdcode_id,那么你只需在模型中使用isdcode_id。这样就可以避免解析字符串的麻烦。
如果这不可行,正则表达式可能是提取信息的最佳方式。您可以覆盖模型中的setter来执行此操作。
答案 2 :(得分:1)
如果您只想单独获取ISD代码,这应该有效:
"United States of America(+1)".gsub!(/[^\+\d]/, "")
注意:你可以在你的视图帮助器中使用它,并在持久化之前调用字符串上的帮助器
答案 3 :(得分:1)
已经回答了,但我想提供一个获取ISD代码的替代方案:
isd = "United States(+1)"
puts isd[/[+]*[\d]{1,4}/] # +1
此正则表达式匹配: 0001 +1 +01 等
答案 4 :(得分:0)
我更喜欢使用js在客户端提取信息并在模型中进行验证。通过这种方式,你可以得到你想要的东西,并确保它是正确的。