Почтовая Проверка TSQL (без regex)

Можно заставить локальное смещение часового пояса клиента получать время GMT и затем добавлять часы смещения часового пояса Германии (Центрально-европейское время GMT+1):

function getDate(offset){
  var now = new Date();
  var hour = 60*60*1000;
  var min = 60*1000;
  return new Date(now.getTime() + (now.getTimezoneOffset() * min) + (offset * hour));
}

//...

var dateCET = getDate(1); // Central European Time is GMT +1

if (dateCET.getHours() < 12) {
    alert ("Good morning.");
} else {
    alert ("Good afternoon.");
}

Обновление: я соглашаюсь с @Josh, вышеупомянутый код является полностью клиентским зависимым. Давайте попытаемся сделать это лучше:

$(document).ready(function(){
  var timezone = "Europe/Berlin";
  $.getJSON("http://json-time.appspot.com/time.json?tz="+timezone+"&callback=?",
    function(data){
      if (data.hour < 12) {
        alert ("Good morning in "+timezone);
      } else {
        alert ("Good afternoon in "+timezone);
      }
    })
});

Мы теперь используем в своих интересах JSONP, чтобы сделать Междоменные запросы к сервер jsontime , этот сервер подвергает полный API JSON информации о часовом поясе и времени запроса.

можно играть с кодом здесь , и можно исследовать JSONP API здесь .

Ура!, никакой серверный код!

30
задан Eric Z Beard 23 October 2008 в 14:00
поделиться

2 ответа

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

CREATE FUNCTION [dbo].[fnAppEmailCheck](@email VARCHAR(255))   
--Returns true if the string is a valid email address.  
RETURNS bit  
as  
BEGIN  
     DECLARE @valid bit  
     IF @email IS NOT NULL   
          SET @email = LOWER(@email)  
          SET @valid = 0  
          IF @email like '[a-z,0-9,_,-]%@[a-z,0-9,_,-]%.[a-z][a-z]%'  
             AND LEN(@email) = LEN(dbo.fnAppStripNonEmail(@email))  
             AND @email NOT like '%@%@%'  
             AND CHARINDEX('.@',@email) = 0  
             AND CHARINDEX('..',@email) = 0  
             AND CHARINDEX(',',@email) = 0  
             AND RIGHT(@email,1) between 'a' AND 'z'  
               SET @valid=1  
     RETURN @valid  
END  
19
ответ дан 27 November 2019 в 23:23
поделиться

Из снимка Томалака

select 1
where @email not like '%[^a-z,0-9,@,.]%'
and @email like '%_@_%_.__%'
-2
ответ дан 27 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

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