2015-01-15 3 views
0

я установил форматирование маски на текстовом поле:Как удалить символы форматирования?

$(document).ready(function() { 
    $("#budget_para_prevision").inputmask("9999999999999.99"); // 13 digits before "." 
}); 

Проблема происходит после отправки формы, когда длина цифр перед «» знак меньше, чем 13, то символы форматирования записываются автоматически с переменной $_POST, это дает что-то вроде этого: 391000000000 _.__

Так как удалить _ и на . знак в этом случае?

+1

[Заменить] (http://php.net/manual/en/function.str-replace.php) '_' с пустым символом, затем [обрезка] (http://php.net/RTRIM) '.' с конца – musefan

+1

не уверен, как это исходит, но я лично обойдусь тем, что, получив только цифры от него. – briosheje

+0

Нет ли регулярного выражения, чтобы исправить это? – pheromix

ответ

2

Вы можете удалить ненужные символы, используя комбинацию str_replace и rtrim. Что-то вроде этого:

$input = "391000000000_.__"; 
$result = str_replace("_", "", $input); // Remove instances of underscore. 
$result = rtrim($result, "."); // Remove the dot if it's the last character. 

Или вы можете просто сделать всю партию с одним rtrim:

$result = rtrim($input, "._"); 
+1

Все, что вам действительно нужно, это 'rtrim ($ input," ._ ")'. Но исправление ввода было бы лучше. – jeroen

+0

@jeroen: Ах да, это было бы лучше! – musefan

2

Возможно, часть маски может быть дополнительной. Все, что указано после '?' в маске считается необязательным пользователем. Общий пример для этого - номер телефона + дополнительное расширение.

$(document).ready(function() { 
    //if 12 and more digits are optional 
    $("#budget_para_prevision").inputmask("999999999999?9.99"); 
}); 

От docs

+1

Отличный ответ здесь! –

+0

Какой плагин inputmask вы имеете в виду именно? – jeroen

+0

jquery.inputmask.min.js – pheromix

1

Я предполагаю, что это будет зависеть от того, что JQuery inputmask плагин вы используете точно, но если это Robin Herbots плагин, вы можете сделать части вашего ввода дополнительного и указать длины:

$(document).ready(function() { 
    $("#budget_para_prevision").inputmask("9{1,13}[.99]"); // 13 digits before "." 
}); 

конечно, вы также можете это исправить на внутреннем интерфейсе с rtrim($input, "._"), но предотвращение ввода в первую очередь было бы лучше.

+0

jquery.inputmask.min.js – pheromix

Смежные вопросы