Regex не допускать строку, которая заканчивается пробелом [дубликат]

  var eventdate = новая дата («01 января 2014 00:00:00»);  function toSt (n) {s = "" if (n & lt; 10) s + = "0" return s + n.toString ();  } function countdown () {cl = document.clock;  d = новая дата ();  кол = Math.floor ((eventdate.getTime () - d.getTime ()) / 1000);  if (count & lt; = 0) {cl.days.value = "----";  cl.hours.value = "-";  cl.mins.value = "-";  cl.secs.value = "-";  вернуть;  } cl.secs.value = toSt (count% 60);  кол = Math.floor (кол / 60);  cl.mins.value = Tost (кол-% 60);  кол = Math.floor (кол / 60);  cl.hours.value = Tost (кол-% 24);  кол = Math.floor (кол / 24);  cl.days.value = кол;  SetTimeout ( "обратный отсчет ()", 500);  }  

Здравствуйте, у меня есть аналогичное назначение, которое связано с созданием Javascript Countdown Clock. Вот код, который я использовал. Подключите вышеуказанный код между & lt; script language = "Javascript"> & lt; / script>. Имейте в виду, что просто наличие этого javascript не будет делать много, если у вас нет html для отображения часов. Я оставлю вам html. Создайте часы, как хотите.

47
задан Teun Zengerink 27 July 2012 в 10:55
поделиться

4 ответа

Чтобы сопоставить pattern или пустую строку, используйте

^$|pattern

Объяснение

  • ^ и $ - начало и конец строки якоря соответственно.
  • | используется для обозначения альтернатив, например this|that.

Ссылки


В \b

\b в большинстве случаев это якорь «граница слова». Это совпадение с нулевой шириной, то есть пустая строка, но она соответствует только этим строкам в очень специфических местах , а именно на границах слова.

То есть \b:

  • Между последовательными \w и \W (любой порядок): то есть между символом слова и символом не-слова
  • Между ^ ] и \w, т.е. в начале строки, если она начинается с \w
  • Между \w и $, т.е. в конце строки, если она заканчивается на \w

Ссылки


Вкл. используя регулярное выражение для соответствия адресам электронной почты

Это не тривиально в зависимости от спецификации.

Связанные вопросы

125
ответ дан Community 16 August 2018 в 05:14
поделиться

Альтернативой было бы разместить ваше регулярное выражение в невостребованных круглых скобках. Затем сделайте это выражение необязательным, используя квалификатор ?, который будет искать 0 (т. Е. Пустую строку) или 1 экземпляр незахваченной группы.

Например:

/(?: some regexp )?/

В вашем случае регулярное выражение будет выглядеть примерно так:

/^(?:[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+)?$/

Нет | "или" необходим оператор!

Здесь Документация Mozilla для синтаксиса регулярного выражения JavaScript.

7
ответ дан Jgonzalez731 16 August 2018 в 05:14
поделиться

Я не уверен, почему вы хотите проверить дополнительный адрес электронной почты, но я бы посоветовал вам использовать

^$|^[^@\s]+@[^@\s]+$

, что означает

^$        empty string
|         or
^         beginning of string
[^@\s]+   any character but @ or whitespace
@         
[^@\s]+
$         end of string

Вы выиграли 't прекратить поддельные электронные письма в любом случае, и таким образом вы не прекратите действительные адреса.

2
ответ дан MrWhite 16 August 2018 в 05:14
поделиться
  • 1
    Если адрес не вводится в поле, в базу данных вводится значение NULL, поэтому это может быть рассмотрено, когда дело доходит до рассылки информационных бюллетеней и т. Д. Я ценю, что это не остановит поддельные адреса, и я не думаю, что возможно вообще с Regex, но это, по крайней мере, минимизирует человеческую ошибку – Curt 26 July 2010 в 10:46
  • 2
    У меня также есть и запросы клиентов. На самом деле, это просто заставить клиентов делать что-то глупое, как вводить свой номер телефона в поле электронной почты. – Kelly Gendron 8 March 2012 в 19:22

\ b соответствует границе слова. Я думаю, вы можете использовать ^ $ для пустой строки.

0
ответ дан pritaeas 16 August 2018 в 05:14
поделиться
Другие вопросы по тегам:

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