извлекать информацию из определенной строки - PullRequest
1 голос
/ 26 февраля 2012

Я новичок в рубине на рельсах. Я передал параметры ISDCode, AreaCode и номер телефона, используя POST из формы.

У меня есть строка с информацией о формате countryName (ISDCode), переданная в переменной ISDCode. Например, «Соединенные Штаты Америки (+1)».

Теперь я хочу сохранить в базе данных только значение ISDCode.

Каким будет идеальный способ извлечь код ISD из строки?

Должен ли я извлечь ISD-код в Javascript до того, как пользователь отправит форму, или я должен извлечь его в модели с помощью обратного вызова?

Также является ли регулярное выражение единственным способом извлечения информации?

Ответы [ 5 ]

1 голос
/ 26 февраля 2012

Уже ответил, но я хотел бы предложить альтернативу для получения кода ISD:

    isd = "United States(+1)"
    puts isd[/[+]*[\d]{1,4}/] # +1

Это регулярное выражение соответствует: 0001 +1 +01 и т.д.

1 голос
/ 26 февраля 2012

Так как строка от автозаполнения, ISD-коды должны существовать в вашей базе данных.Таким образом, лучшим решением может быть добавление дополнительного параметра (со скрытым вводом), такого как isdcode_id, тогда вы просто используете isdcode_id в своей модели.Таким образом, вы можете избежать проблем с анализом строки.

Если это невозможно, регулярное выражение может быть лучшим способом извлечения информации.Вы можете переопределить сеттер в модели, чтобы сделать это.

1 голос
/ 26 февраля 2012

Если вы заинтересованы в получении только кода ISD, это должно работать:

"United States of America(+1)".gsub!(/[^\+\d]/, "")

Примечание: вы можете иметь это в вашем помощнике вида и просто вызвать помощника в строке перед сохранением

1 голос
/ 26 февраля 2012

использовать регулярное выражение для соответствия ISDcode

"United States of America(+1)" =~ /(\+[\d]+)/
puts $1
0 голосов
/ 26 февраля 2012

Я предпочитаю использовать js для извлечения информации на стороне клиента и проверки в модели.Таким образом, вы можете получить то, что вы хотите, и убедиться, что это правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...