簡體   English   中英

Javascript正則表達式來檢測一個字符串是否有兩個“ @”字符?

[英]Javascript regex to detect if a string has two “@” chars?

我正在嘗試做一個簡單的驗證,即一個字符串僅包含一個電子郵件地址。 我猜想,最簡單的方法是查找重復的“ @”字符並在這種情況下拒絕。 我有這段代碼,並且我在regex101上測試了regex,它運行良好。 但是,由於它在頁面中,因此我什么也沒得到:

function checkemail(input){
var validformat=/^.*@.*@+.*?/
var returnval=false
if (!validformat.test(input.value))
alert("Invalid email format. Please correct and submit again.")
else{ returnval=true
}
if (returnval==false) input.select()
return returnval
}

我這樣稱呼:

<form action="storemessage.php" method="POST" onSubmit="return checkemail(this.recipemail)">

該字段的名稱為“ recipemail”。 難過 希望這很簡單,我只是沒有足夠的咖啡去看...

如果字符串與格式匹配(在您的情況下,如果它包含@ x2),則正則表達式test返回true。 因此,您想更改if條件,使其作用於真實值,而不是false:

if (validformat.test(input.value)) {
    alert("Invalid email format. Please correct and submit again.");
}

也許您應該將正則表達式重命名為invalidformat

在JS中驗證電子郵件是一項非常繁瑣的任務,您可以考慮數百種奇怪的情況,但這根本不可行。 因此,您必須在某處畫線。 試試這個正則表達式:

/^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM