Write in an edit text character set: A-Z, a-z and '-'

5 visualizzazioni (ultimi 30 giorni)
Diana Acreala
Diana Acreala il 25 Ott 2011
Risposto: Voss il 28 Dic 2021
Hello all,
I have this problem with an edit text that should allow the user to enter only the charater set: A-Z, a-z and '-'. Using another character then a msg error should appear.
I used the code below:
variable_name=get(handles.variable_name_edittext,'String');
% Exclude characters, which are accepted by sscanf:
variable_name(ismember(variable_name, '-+eEgG')) = ' ';
% Convert to one number and back to a string:
check_val = sprintf('%g', sscanf(variable_name, '%g', 1));
set(handles.variable_name_edittext, 'String', check_val);
% Perhaps a small warning in WARNDLG or inside the GUI:
if ~all(ismember(variable_name, '-1234567890AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'))
msgbox('Please use for the name only the following characters: A-Z, a-z and -','Warning','warn')
set(handles.variable_name_edittext,'String','');
end
This is what I also found in one of the questions here, but it was reffering to numbers. So instead of '-1234567890AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz' was '.1234567890'.
With the numbers is working. With my character set.. not really.. I tried to type: test-TEST (which contains what is allowed) but the error message still appear for this case which should be accepted!
So.. where is my mistake here? Why is not working? Thank you! Diana

Risposte (1)

Voss
Voss il 28 Dic 2021
You are replacing any character in '-+eEgG' with a space, but the space character is not in the valid character list.

Categorie

Scopri di più su Language Support in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by