inputdlg - how do i recognise if someone entered a symbol, e.g. = into the box?

1 visualización (últimos 30 días)
how do i recognise if someone entered a symbol, e.g. = into the box?
  4 comentarios
Dominique Joubert
Dominique Joubert el 22 de Ag. de 2018
i want a user to enter the right side of an equation:for example s+2*a-3/r
Stephen23
Stephen23 el 22 de Ag. de 2018
Editada: Stephen23 el 22 de Ag. de 2018
What about all of the ASCII control characters, i.e. char(0:31)? What about non-breaking spaces, en dashes, em dashes, etc?
There are many characters that you are likely to want to exclude, and building a list of them all is intractable. It would be much easier to define what characters are allowed, as this list will be much smaller. For that you can use a regular expression.
Note that writing a language parser is not a trivial task.

Iniciar sesión para comentar.

Respuesta aceptada

Niklas Nylén
Niklas Nylén el 22 de Ag. de 2018
Verifying that the expression is a valid equation is probably extremely hard, but validating that only "allowed" symbols are entered is quite simple using regexp:
% Allowing +, -, *, / and space. Expand list if needed.
validSpecialChars = regexptranslate('escape', '+-*/ ')
assert(isempty(regexp(input, ['[^A-Za-z0-9' validSpecialChars ']'], ...
'Expression %s contains invalid characters', input)

Más respuestas (0)

Categorías

Más información sobre Construct and Work with Object Arrays en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by