<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>09regExpObject.html</title>
<script>
var str="Is this all there is?";
var re = new RegExp("is", "gi");//Is,is,is
//g代表比對全部(沒有g則只會顯示一個),i代表忽略大小寫
document.write(str.match(re) + "<br>");
var re1 = new RegExp("is", "g");//is,is
document.write(str.match(re1) + "<br>");
var re2 = new RegExp("is", "i");//Is
document.write(str.match(re2) + "<br>");
var re3 = new RegExp("is", "");//is
document.write(str.match(re3) + "<hr/>");
function chkEmail() {
var theEmail = document.getElementById("idEmail").value;
//var re = /^.+@.+\..{2,3}$/;
//document.write("\"a+b\"");,返斜線\代表跳脫字元,所以這一行會顯示"a+b"
//網址格式:xxxxx@xxxx.xxx(或者xx)
var re = new RegExp("^.+@.+\\..{2,3}$", "gi")
//^ 開始字元
//「.」可以有一或多個字元(不包含換行符號但是包含空白)
//a+,「+」符號看的是他前面,代表只少要出現一次,所以a+代表a至少要出現一次
//「^.+」代表開始的地方為不限定字數的字元(且可以空白),但至少要有一個(即使是空白)(因為有+)
//@代表在「^.+」後需要出現「@」
//.+ 一定要出現一個或多個字元(即使是空白)
//「\」返斜線意思是跳脫字元,也就是後面的東西視為「字元」而非特殊符號,但因為JS也把\認為是跳多字元,所以如果只是傳
//^.+@.+\..{2,3}$的話,會顯示成^.+@.+..{2,3}$如下,所以解決方法就是多加一個\
document.write("^.+@.+\..{2,3}$");//顯示^.+@.+..{2,3}$(這個要點完checkEmail才會出現)
//「\.」中的「.」跟@一樣是一個一般字元,代表一定要出現
//.{2,3}則代表要有任意字元2-3個,後面加$符號代表此為結尾(.後、結尾前只有2-3個字元),所以不能超過3個
if (re.test(theEmail))
alert("successful");
else
alert("failure");
}
</script>
</head>
<body>
Email:<input type="text" id="idEmail" />
<br />
<input type="button" value="checkEmail" onclick="chkEmail();" />
</body>
</html>
正則測試:https://regex101.com/#javascript
留言列表