Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.07.2019, 23:02
Интересующийся
Отправить личное сообщение для Himmelin Посмотреть профиль Найти все сообщения от Himmelin
 
Регистрация: 14.01.2019
Сообщений: 27

Проверка списка
Доброго времени суток Вопрос по регулярным выражениям.

Есть список вида:

1,2,3,4,5,6,7....10,11,...1000,1001

Нужно проверить, что этот список состоит только из цифр и запятых(пробелы тоже могут быть, они потом удаляются специальной функцией в конце).

То есть списки вида:

1б2ю3,4,5,6,6
1,,2,4,5,,,,,6,7
1,2,3,4,5,yyy,6

Должны при проверке инициировать ошибку.

Пробовал вот так:
let regularExpression =  /[\D^\,]/ig
, но не работает
Ответить с цитированием
  #2 (permalink)  
Старый 16.07.2019, 23:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Himmelin,
function fn(str)
    {
       return str.split(",").every( num => num.trim() && num == Number(num))
    }
    let str = "1,2,3,4,   5,6  ,7";
    alert(fn(str)); //true
    str = "1б2ю3,4,5,6,6";
    alert(fn(str)); //false
    str = "1,,2,4,5,,,,,6,7";
    alert(fn(str)); //false
    str = "1,2,3,4,5,yyy,6";
    alert(fn(str)); //false
Ответить с цитированием
  #3 (permalink)  
Старый 17.07.2019, 03:21
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,004

/^\s*\d+(?:\s*,\s*\d+)*\s*$/.test(str)
Ответить с цитированием
  #4 (permalink)  
Старый 17.07.2019, 08:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от Himmelin
Нужно проверить, что этот список состоит только из цифр и запятых(пробелы тоже могут быть, они потом удаляются специальной функцией в конце).

То есть списки вида:

1б2ю3,4,5,6,6
1,,2,4,5,,,,,6,7
1,2,3,4,5,yyy,6

Должны при проверке инициировать ошибку.
Предложу такой вариант...
alert(test('1,2,3,4,5,6,7'));
alert(test('1, 2,3 ,4, 5 ,6,7'));
alert(test('1б2ю3,4,5,6,6'));
alert(test('1,,2,4,5,,,,,6,7'));
alert(test('1,2,3,4,5,yyy,6'));
function test(Str){
	var re=/(^|,)\s*?\d+\s*/g;
	var val=Str.replace(re,'');
	return Str+' - '+(val=='');
};
Ответить с цитированием
  #5 (permalink)  
Старый 19.07.2019, 03:10
Интересующийся
Отправить личное сообщение для Himmelin Посмотреть профиль Найти все сообщения от Himmelin
 
Регистрация: 14.01.2019
Сообщений: 27

Всем спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Не работает скрипт отображения списка Konstantine Javascript под браузер 3 18.03.2013 06:00
самозакрывающееся меню в виде списка о_О dimitar Элементы интерфейса 4 20.03.2012 15:27
Динамическое добавление выпадающего списка В IE stepennwolf Internet Explorer 3 04.11.2011 17:36
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40