使用JavaScript我想要輸入 1st驗證電子郵件有效(我解決了此問題) 第二,驗證電子郵件地址是否來自雅虎.com確定電子郵件域名的正則表達式(例如,yahoo.com)
任何人都知道將提供域的正則表達式?
thxs
使用JavaScript我想要輸入 1st驗證電子郵件有效(我解決了此問題) 第二,驗證電子郵件地址是否來自雅虎.com確定電子郵件域名的正則表達式(例如,yahoo.com)
任何人都知道將提供域的正則表達式?
thxs
/@yahoo.com\s*$/.test(mystring)
如果字符串以@yahoo.com
(加上可選的空格)結尾,則爲true。
謝謝,但這是去哪裏? – AnApprentice 2010-07-17 04:15:51
這是怎麼回事?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<script type="text/javascript">
var okd = ['yahoo.com'] // Valid domains...
var emailRE = /^[a-zA-Z0-9._+-][email protected]([a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})$/
function ckEmail(tst)
{
var aLst = emailRE.exec(tst)
if (!aLst) return 'A valid e-mail address is requred';
var sLst = aLst[1].toLowerCase()
for (var i = 0; i < okd.length; i++) {
if (sLst == okd[i]) {
return true
}
}
return aLst[1];
}
var ckValid = ckEmail(prompt('Enter your email address:'))
if (ckValid === true) {
alert(ckValid) // placeholder for process validated
} else {
alert(ckValid) // placeholder for show error message
}
</script>
<title></title>
</head>
<body>
</body>
</html>
你不需要爲此使用正則表達式。
您可以使用indexOf
方法查看字符串是否包含另一個字符串。
var idx = emailAddress.indexOf('@yahoo.com');
if (idx > -1) {
// true if the address contains yahoo.com
}
我們可以採取的slice()
優勢,以實現像這樣 「結尾」:
var idx = emailAddress.lastIndexOf('@');
if (idx > -1 && emailAddress.slice(idx + 1) === 'yahoo.com') {
// true if the address ends with yahoo.com
}
在常綠的瀏覽器,你可以使用內置的String.prototype.endsWith()像這樣:
if (emailAddress.endsWith('@yahoo.com')) {
// true if the address ends with yahoo.com
}
瀏覽器支持請參閱MDN docs。
嗯。你確定這是有效的JS?這是錯誤 – AnApprentice 2010-07-17 04:15:10
@nobosh這是因爲'if'後沒有語句。 styfle向您展示瞭如何測試yahoo.com是否在字符串中 - 您提供了之後發生的事情。 – JAL 2010-07-17 04:37:08
你需要切片(idx + 1),切片(idx)返回@ yahoo.com – 2016-09-17 08:52:56
var rx = /^([\w\.]+)@([\w\.]+)$/;
var match = rx.exec("[email protected]");
if(match[1] == "yahoo.com"){
do something
}
第二個捕獲組將包含該域。
這是如何工作e2e? – AnApprentice 2010-07-17 04:20:24
要檢查特定域(yahoo.com):
/^[^@\s][email protected]$/i.test(email)
// returns true if it matches
要提取的域部分和稍後查看:
x = email.match(/^[^@\s][email protected]([^@\s])+$/)
// x[0] contains the domain name
JS錯誤,它說它不是一個函數 – AnApprentice 2010-07-17 04:22:49
對不起,我混淆了對'match'的調用。現在已經修復了。 – casablanca 2010-07-17 04:30:54
>>> String('[email protected]').replace(/^[^@]*@/, '')
'yahoo.com'
function emailDomainCheck(email, domain)
{
var parts = email.split('@');
if (parts.length === 2) {
if (parts[1] === domain) {
return true;
}
}
return false;
}
:)
這是正確的解決方案,但不是RegEx解決方案:) – MarmiK 2014-07-23 07:26:28
雅虎域名(不含用戶名)
@(((qc|ca)?\.yahoo\.com)|yahoo\.(com(\.(ar|au|br|co|hr|hk|my|mx|ph|sg|tw|tr|vn))?|ae|at|ch|es|fr|be|co\.(in|id|il|jp|nz|za|th|uk)|cz|dk|fi|de|gr|hu|in|ie|it|nl|no|pl|pt|ro|ru|se))
如果可能的話請顯示完整的E2E示例 – AnApprentice 2010-07-17 04:17:26