Вы уже используете оптимизированный код. Но вы можете оптимизировать его немного больше для отображения сообщения об ошибке. Как показано ниже:
$invalidFieldName = '';
$invalidFieldLength = 100;
if (strlen($cname) > 100) {
$invalidFieldName = 'CNAME';
} elseif (strlen($cowner) > 100) {
$invalidFieldName = 'COWNER';
} elseif (strlen($cemail) > 200) {
$invalidFieldName = 'CEMAIL';
$invalidFieldLength = 200;
} elseif (strlen($cpassword) > 100) {
$invalidFieldName = 'CPASSWORD';
}
if ($invalidFieldName != '') {
echo $invalidFieldName." should be greater than ".$invalidFieldLength;
}
Я не совсем уверен, поможет ли это вам, но я надеюсь, что это поможет вам.
Используйте String.gsub ()
:
"ich bin doch nicht blöd, mann!".gsub(/[äöü]/) do |match|
case match
when "ä"
'ae'
when "ö"
'oe'
when "ü"
'ue'
end
end
Конечно,
Я написал небольшую библиотеку под названием Asciify именно для этой цели
$ sudo gem install asciify
Использование:
#!/bin/ruby
require "asciify"
"Lücke".asciify #=> "Luecke"
Вы можете предоставить YAML-файл для пользовательских сопоставлений, например:
translator = Asciify.new("/path/to/mappings.yaml")
output_string = translator.convert("input string")
(см. встроенное отображение по умолчанию для ожидаемого формата)
Весь проект довольно старый, но, возможно, он выполняет ту работу, которая вам нужна. Если нет, возможно, вам пригодится исходный код .
Я однажды задал похожий вопрос . Это было для JavaScript и требует подхода на основе регулярных выражений. Может быть, решение все еще имеет для вас некоторую ценность с методологической точки зрения.
Попробуйте использовать это: "Ich bin doch nicht böld ähhh ühh öhhh" .gsub (/ [äöüßÄÖÜ „“ §% & - +] /) {| t | t.to_xs}