Prevent typing string in edit text

I have a problem. I want to create a edit text and then when I type a string in it, it will display nothing like a empty. That is to say it allows only numbers. I found some ways but they use push button for checking. Please help me.
Thank you in advance.

 Accepted Answer

What does "only numbers" exactly mean? "1e3" is a number also.
What about checking the value inside the callback?
function Edit_Callback(hObject, EventData)
Str = get(hObject, 'String');
Value = sscanf(Str, '%g', 1);
fixStr = sprintf('%g', Value);
set(hObject, 'String', 'fixStr);
This tries to interprete the contents as 1 number and removes other characters.

2 Comments

Thank you so much
But I have another problem :) When I typed '8.8*10^-7' in edit text, then I pushed enter button but it displayed '8.8'. How can I control it? I mean I want to type the mathematical symbol also.
You need to define all of the possible number formats, and then you need to write code that parses them. For example do you also allow 8.8E-7 ? 8.8d-7 ? .5e-7 ? 5E+007 ? 8.8+5.2i ? 8.8^-7 (where it is not 10 which is the base being raised) ? 8.8•10^+7 ? 8.8*10^—7 (notice that is one of the dashes, not a minus sign) ? 8.8*10ˆ7 (notice that is ˆ not ^) ? 8.8·10^-7 ? 8.8×10^-7 ?

Sign in to comment.

More Answers (3)

Hello. i was walking around here and i thought the following solution might be usefull for future people (may be the past time traveler :) )
function prevent_string(textbox_control)
if textbox_control.String ~= "" && isnan(str2double(textbox_control.String))
textbox_control.String = "";
end
These days you would use a
uieditfield('numeric')
which requires uifigure() (and will not work for traditional figures)

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Products

Asked:

on 31 Mar 2016

Answered:

on 31 Jul 2022

Community Treasure Hunt

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

Start Hunting!