此查询创建一个mysql视图,在一个表中捕获错误的电子邮件地址格式.因此,如果插入一行rtrrg.com作为电子邮件,它将被记录在视图中.我的问题是,如何使视图跟踪多个表.第二张桌子.
SQL
CREATE VIEW `invalid_emails` AS
select `table_with_email_column`.`email` AS `invalidemail`
from `table_with_email_column`
where ((locate(_latin1'', ltrim(rtrim(`table_with_email_column`.`email`))) <> 0)
or (left(ltrim(`table_with_email_column`.`email`), 1) = _latin1'@')
or (right(rtrim(`table_with_email_column`.`email`), 1) = _latin1'.')
or ((locate(_latin1'.', `table_with_email_column`.`email`,locate(_latin1'@', `table_with_email_column`.`email`)) - locate(_latin1'@', `table_with_email_column`.`email`)) <= 1)
or ((length(ltrim(rtrim(`table_with_email_column`.`email`))) - length(replace(ltrim(rtrim(`table_with_email_column`.`email`)), _latin1'@', _latin1''))) <> 1)
or (locate(_latin1'.', reverse(ltrim(rtrim(`table_with_email_column`.`email`)))) < 3)
or (locate(_latin1'.@', `table_with_email_column`.`email`) <> 0)
or (locate(_latin1'..', `table_with_email_column`.`email`) <> 0));
Run Code Online (Sandbox Code Playgroud) input无论用户类型是什么,我如何强制"用户名"文本中的文本为小写?
<div class="register">
<label for="username">Select username:</label>
</div>
<div class="registerform">
<input name="username" class="registerfont" type="text"
id="username" maxlength="15" style="height:35px; width:300px">
</div>
Run Code Online (Sandbox Code Playgroud) 如何正确构建"grep"linux程序的正则表达式,找到所有的电子邮件,说/ etc目录?目前,我的脚本如下:
grep -srhw "[[:alnum:]]*@[[:alnum:]]*" /etc
Run Code Online (Sandbox Code Playgroud)
工作正常 - 看一些电子邮件,但是当我修改它时,要在"@"符号之前和之后捕捉一个或多个字符...
grep -srhw "[[:alnum:]]+@[[:alnum:]]+" /etc
Run Code Online (Sandbox Code Playgroud)
..它根本停止工作
此外,它不会收到"Name.LastName@site.com"形式的电子邮件
救命 !
我目前正在使用Laravel构建Slack机器人,其中一个功能是它可以接收电子邮件地址并向其发送消息.
问题是电子邮件地址(例如bob@example.com)<mailto:bob@example.com|bob@example.com>来自Slack.
我目前有一个函数可以从中检索电子邮件:
public function getEmail($string)
{
$pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,3})(?:\.[a-z]{2})?/i';
preg_match_all($pattern, $string, $matches);
$matches = array_filter($matches);
return $matches[0][0];
}
Run Code Online (Sandbox Code Playgroud)
这似乎与电子邮件地址一样正常工作bob@example.com,但是在使用电子邮件地址时似乎失败了bob.jones@example.com(<mailto:bob.jones@example.com|bob.jones@example.com>在这种情况下,函数将jones@example.com作为电子邮件地址返回.)
我对正则表达式不是很好,但是我可以使用/改变我的模式,还是从Slack提供的字符串中获取电子邮件地址的更好方法?
我检查了 StackOverflow 并找不到任何可以回答如何在 Go Language 中验证电子邮件的问题。
经过一番研究,我想出了并根据我的需要解决了它。
我有这个正则表达式和Go 函数,它工作正常:
import (
"fmt"
"regexp"
)
func main() {
fmt.Println(isEmailValid("test44@gmail.com")) // true
fmt.Println(isEmailValid("test$@gmail.com")) // true -- expected "false"
}
// isEmailValid checks if the email provided is valid by regex.
func isEmailValid(e string) bool {
emailRegex := regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$")
return emailRegex.MatchString(e)
}
Run Code Online (Sandbox Code Playgroud)
问题是它接受了我不想要的特殊字符。我尝试使用一些来自其他语言的“正则表达式”表达式,但它在调试中抛出错误“未知转义”。
谁能给我一个很好的正则表达式或任何适用于 GoLang 的快速解决方案 (pkg)?
电子邮件客户端的HTML显示功能有限.
什么HTML标记和CSS样式在HTML格式的电子邮件中使用是否安全?
我已经尝试找到一个完整的模式列表,用于通过各种类型的HTML5表单验证验证输入,特别url是email,tel等等,但我找不到任何模式.目前,这些输入验证的内置版本远非完美(tel甚至不检查您输入的内容是否是电话号码).所以我想知道,我可以使用哪些模式来验证用户是否在输入中输入了正确的格式?
以下是一些默认验证允许不允许输入的情况示例:
type="email"此字段允许在@之后具有不正确域的电子邮件,并且它允许地址以短划线或句点开始或结束,这也是不允许的.所以,.example-@x是允许的.
type="url"此输入基本上允许以http://(Chrome)开头的任何输入,后跟除了一些特殊字符之外的任何内容,例如在URL(\,@,#,〜等)中具有功能的特殊字符.在FF中,所有检查的是它是否以http:,除了之后的任何其他内容:(即使只是http:在FF中允许).IE与FF相同,只是它不允许http::.
例如:http://.允许所有三个.等等http://,.
type="tel"目前在任何主流浏览器中都没有针对电话号码的内置验证(type="text"除了告诉移动浏览器要显示哪种类型的键盘之外,其功能与100%相同).
因此,由于浏览器在每种情况下都没有显示一致的行为,并且由于它们显示的行为是非常基本的,有很多误报,我可以做些什么来验证我的HTML表单(仍然使用HTML5输入验证)?
PS:我发布这个是因为我觉得自己有一个完整的表单验证模式列表很有用,所以我认为它也可能对其他人有用(当然其他人也可以发布他们的解决方案).
在PHP中,我有一个这样的字符串:
$string = "user@domain.com";
Run Code Online (Sandbox Code Playgroud)
我如何从电子邮件地址获取"用户"?有没有简单的方法来获得@之前的价值?
UserManager.FindByEmailAsync返回null,但该用户存在于数据库中。
下面的代码解释了这个奇怪的问题:
var email = info.Principal.FindFirstValue(ClaimTypes.Email);
var test = new Data.ApplicationDbContext().Users.First(x => x.NormalizedEmail == email);
var usermail = await _userManager.FindByEmailAsync(email);
Console.WriteLine(test == null); //false
Console.WriteLine(usermail == null); //true
Run Code Online (Sandbox Code Playgroud)
同样通过_userManager其自身,可以获得所需的用户:
var test = _userManager.Users.FirstOrDefault(x => x.NormalizedEmail == email);
var usermail = await _userManager.FindByEmailAsync(email);
Console.WriteLine(test == null); //false
Console.WriteLine(usermail == null); //true
Run Code Online (Sandbox Code Playgroud)
需要注意的是,用户不是以“常规”方式创建的,而是通过 Data-Seed 创建的(在OnModelCreating):
protected override void OnModelCreating(ModelBuilder builder)
{
var users = new (string email, string name)[] {
("xyz@gmail.com", "admin")
};
var …Run Code Online (Sandbox Code Playgroud) 我在我的网页中使用引导程序并尝试在该页面上制作一个表单。我使用引导程序的标准类来制作表单。我已经使用验证来检查表单的空性。我只想在我的代码中进一步添加电子邮件和电话号码验证。下面给出了表单和已经声明的验证脚本的代码:
<script type="text/javascript">
function validateText(id) {
if ($("#" + id).val() == null || $("#" + id).val() == "") {
var div = $("#" + id).closest("div");
div.removeClass("has-success");
$("#glypcn" + id).remove();
div.addClass("has-error has-feedback");
div.append('<span id="glypcn' + id
+ '" class="glyphicon glyphicon-remove form-control-feedback"></span>');
return false;
} else {
var div = $("#" + id).closest("div");
div.removeClass("has-error");
$("#glypcn" + id).remove();
div.addClass("has-success has-feedback");
div.append('<span id="glypcn' + id
+ '" class="glyphicon glyphicon-ok form-control-feedback"></span>');
return true;
}
}
$(document).ready(function() {
$("#contactButton").click(function() {
if (!validateText("contactName")) {
return false;
} …Run Code Online (Sandbox Code Playgroud)html ×4
css ×3
email ×2
html5 ×2
javascript ×2
php ×2
regex ×2
asp.net-core ×1
c# ×1
forms ×1
go ×1
grep ×1
html-email ×1
jquery ×1
laravel ×1
laravel-5.3 ×1
linux ×1
mysql ×1
outlook ×1
slack-api ×1
sql ×1
string ×1
validation ×1
view ×1