Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.08.2018, 18:49
WGN WGN вне форума
Интересующийся
Отправить личное сообщение для WGN Посмотреть профиль Найти все сообщения от WGN
 
Регистрация: 29.01.2017
Сообщений: 10

Проверка строки на соответствие регулярному выражению
Есть список строк которые нужно проверить регулярным выражением на валидность.
Строка следующего типа: Ab1 @any_text.text instagram.com/anylink
Она состоит из 3-ех частей, между ними может быть сколько угодно пробелов и/или пропусков строк(enter).

Первый элемент всегда должен содержать значение Ab1.
Второй элемент всегда должен начинаться с символа @ и сразу за ним(без пробела) слово которое может состоять из латинских букв, цифр и символов _ и .
Пример:@sample.text или @sample2_textили @sample3_text.text2.
Третий элемент это ссылка на инстаграм, она может содержать https:// а может и не содержать, но обязательно надо проверить чтобы присутствовало instagram.com/ и после этого не пустота.
Я пишу на PHP и мне нужно регулярное выражение которым можно проверить на валидность строку которую я описал выше.
Ответить с цитированием
  #2 (permalink)  
Старый 20.08.2018, 19:10
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

PHPЗапустить
<?php
$string = "Ab1 @any_text.text https://instagram.com/anylink";

if(preg_match('/^\s*Ab1\s+@[\w.]+\s+(?:https?\:\/\/|)instagram\.com\/[^\s]+\s*$/m', $string)) {
    echo 'ok';
}


JS
var string = "Ab1 @any_text.text https://instagram.com/anylink";

if(/^\s*Ab1\s+@[\w.]+\s+(?:https?\:\/\/|)instagram\.com\/[^\s]+\s*$/m.test(string)) {
    alert("ok");
}

Последний раз редактировалось Malleys, 20.08.2018 в 19:29.
Ответить с цитированием
  #3 (permalink)  
Старый 20.08.2018, 19:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

WGN,
function fn(str)
  {  var reg = [/Ab1/, /^@[\w\.]+$/, /^(https?:\/\/)?instagram\.com\/\S+$/];
     str = str.trim().split(/\s+/);
     return str.length == 3 && str.every(function(s,i) {
     return reg[i].test(s)
     })
  }
 var str = 'Ab1 @any_text.text instagram.com/anylink';
 var ok = fn(str);
 alert(ok); //true
 str = 'Ab1 @any_text.text instagram.com/';
 ok = fn(str);
 alert(ok); //false
  str = 'Ab1 @sample3_text.text2. instagram.com/12345';
 ok = fn(str);
 alert(ok); //true
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объект String. Проверка, является ли последним символом строки точка supat Общие вопросы Javascript 2 24.04.2016 10:54
Создание строки по регулярному выражению 2chan Общие вопросы Javascript 31 29.11.2014 18:07
К строкам, соответствующим регулярному выражению добавить подстроку grifangel Общие вопросы Javascript 1 18.02.2014 20:33
проверка строки на содержание определённого текста swarex Общие вопросы Javascript 1 16.10.2013 17:29
Проверка строки на соответствие регулярному выражению Telnet Общие вопросы Javascript 9 17.07.2011 22:33