Использование:
function IsCharNumeric(ch: Char): Boolean;
begin
//We have IsCharAlphaNumeric, and IsCharAlpha
//So IsCharNumeric = IsCharAlphaNumber - IsCharAlpha
Result := IsCharAlphaNumeric(ch) and (not IsCharAlpha(ch));
end;
Вот результаты теста для выбранных символов.
Примечание : пропущен любой символ "not" числовой:
Кодовый символ IsCharNumeric
- 32 "
(space)
": Нет - 33 "
!
": Нет - 34 "
"
": Нет - 35"
#
": Нет - 36"
$
": Нет - 40"
(
": Нет - 41 "
)
": Нет - 43 "
+
": Нет - 44 "
,
": Нет - 45 "
-
": Нет - 46"
.
": Нет - 48"
0
": Да - 49"
1
": Да - 50 "
2
": Да - 51 "
3
": Да - 52 "
4
": Да - 53 "
5
": Да - 54 "
6
": Да - 55 "
7
": Да - 56 "
8
": Да - 57 "
9
": Да - 65 "
A
": Нет - 66 "
B
": Нет - 67 "
C
": Нет - 68 "
D
": Нет - 69 "
E
": Нет - 70 "
F
": Нет - 178 "
²
": Да - 179 "
³
": Да - 185 "
¹
": Да
Таким образом, если вы хотите урезать строку до тех символов, которые могут быть проанализированы в число, вы потеряете:
Но усиление
С другой стороны, некоторые символы терпят неудачу IsCharAlphaNumeric
тест, когда вы думаете, что они пройдут:
!"#$%&'()*+,-./
Первый символ ASCII, переживший тест IsCharAlphaNumeric
, фактически равен нулю (0
).