RegEx для соответствия “A-Z, a-z, 0-9, _” и “.”

Еще лучше, чем использование десятичных чисел использует просто старые целые числа (или возможно некоторый bigint). Таким образом, у Вас всегда есть самая высокая возможная точность, но точность может быть определена. Например, номер 100 мог означать 1.00, который отформатирован как это:

int cents = num % 100;
int dollars = (num - cents) / 100;
printf("%d.%02d", dollars, cents);

, Если Вам нравится иметь больше точности, можно изменить 100 на большее значение, как: 10 ^ n, где n является количеством десятичных чисел.

30
задан Emma 14 May 2019 в 16:15
поделиться

3 ответа

^[A-Za-z0-9_.]+$

От начала до конца строки сопоставьте один или несколько из этих символов.

Изменить:

Обратите внимание, что ^ и $ соответствуют началу и концу строки . Если включен многострочный режим, это может означать, что соответствует одна строка, но не вся строка.

Используйте \ A для начала строки и \ z для конца .

См., Например: http://msdn.microsoft.com/en-us/library/h5181w5w (v = vs.110) .aspx

60
ответ дан 27 November 2019 в 23:35
поделиться

Работаем с чего вы дали Я предполагаю, что вы хотите проверить, что кто-то НЕ ввел никаких букв, кроме тех, которые вы указали. Чтобы это работало, вы хотите найти любые символы, кроме перечисленных:

[^A-Za-z0-9_.]

И использовать это в совпадении в вашем коде, например:

if ( /[^A-Za-z0-9_.]/.match( your_input_string ) ) {
   alert( "you have entered invalid data" );
}

Как это?

6
ответ дан 27 November 2019 в 23:35
поделиться

Возможно, вам нужно более точно указать, что не сработало и в какой среде вы находитесь.

Что касается утверждения о том, что точка является особенной в классе символов, это не верно в любой среде программирования. Например, следующий сценарий perl

use warnings;
use strict;

my $str = '!!!.###';
$str =~ s/[A-Za-z_.]/X/g;
print "$str\n";

создает

!!!X###
0
ответ дан 27 November 2019 в 23:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: