• 8-1 对象习题表单验证


    1、对象习题

    1、将字符串str = “When I was young, I love a girl in neighbor class.”中,从young提取到girl生成新字符串。但是不许数
                var str = "When I was young, I love a girl in neighbor class.";
    			//1、找出位置
    			var start = str.indexOf("young");
    			var end = str.indexOf("girl") + "girl".length;
    			var subStr = str.substring(start, end);
    			alert(subStr);
    
    2、将字符中单词用空格隔开

    已知传入的字符串中只有字母,每个单词的首字母大写,请将每个单词用空格隔开,只保留一个单词的首字母大写
    传入:”HelloMyWorld”
    返回:”Hello my world”

    /*
    				split() 将字符串 -> 数组  通过字符串分割的方式
    			*/
    			/*var str = "HelloMyWorld";
    			var arr = str.split("");
    			// alert(arr);
    			// H,e,l,l,o, ,m,y, ,w,o,r,l,d
    			//从头到尾遍历,找大写字母。将其改成小写,并且在这个位置插入空格。
    			for(var i = 1; i < arr.length; i++){
    				if(arr[i] >= "A" && arr[i] <= "Z"){
    					arr[i] = arr[i].toLowerCase();
    					arr.splice(i, 0, " ");
    				}
    			}
    			alert(arr.join(""));*/
    /*
    			function wordFromStr(str){
    				var arr = str.split("");
    				
    				for(var i = 1; i < arr.length; i++){
    					if(arr[i] >= "A" && arr[i] <= "Z"){
    						arr[i] = arr[i].toLowerCase();
    						arr.splice(i, 0, " ");
    					}
    				}
    				return arr.join("");
    			}
    
    			alert(wordFromStr("HelloMyWorld"));*/
    
    3、.已知一个字符串对象中,英语单词用各种非字母字符分割,统计单词的个数

    传入: “Yes,she**is%%my@love.”

            单词判断的标准 
            前一个字符是字母,后一个字符是非字母
    		
    			function countOfWord(str){
    				var count = 0; //用于计数
    				for(var i = 0; i < str.length - 1; i++){
    					if(isABC(str[i]) == true && isABC(str[i + 1]) == false){
    						//这就是一个单词
    						count++;
    					}
    				}
    				return count;
    			}
    
    			alert(countOfWord("Yes,she**is%%my@love."));
    
    			//判断一个字符是否是字母
    			function isABC(charStr){
    				if(charStr >= "A" && charStr <= "Z" || charStr >= "a" && charStr <= "z"){
    					return true;
    				}else{
    					return false;
    				}
    			}
    

    2、onblur

        <head>
    		<meta charset="UTF-8">
    		<title>Document</title>
    		<script>
    			/*
    				光标获取   获取焦点
    				光标离开   失去焦点
    			*/
    		</script>
    	</head>
    	<body>
    		<input type="text" id = "input1" />
    	</body>
    	<script>
    		var oInput = document.getElementById("input1");
    		/*
    			失去焦点函数
    		*/
    		oInput.onblur = function(){
    			alert("失去焦点");
    		}
    	</script>
    

    3、表单验证

    <head>
    		<meta charset="UTF-8">
    		<title>Document</title>
            <style>
    			#login{
    				 400px;
    				height: 200px;
    				background-color: orange;
    				border: 1px solid black;
    				text-align: center;
    				padding: 20px;
    				margin: 100px auto;
    			}
    			#login input{
    				margin-top: 10px;
    				 280px;
    				height: 22px;
    				font-size: 15px
    			}
    		</style>
    	</head>
    
    <body>
    		<div id = "login">
    			<input id = "username" type="text" placeholder="用户名" />
    			<br/ >
    			<span id = "username_span">6~18个字符,可使用字母、数字、下划线</span><br />
    			<input id = "password" type="text" placeholder="密码" />
    		</div>
    	</body>
    	<script>
    		var oUsername = document.getElementById("username");
    		var oUsername_span = document.getElementById("username_span");
    
    		//失去焦点的时候。判断是否正确
    		oUsername.onblur = function(){
    			// 1、如果误输入空格,自动纠错 / /g 全局匹配空格
    			oUsername.value = oUsername.value.replace(/ /g, "");
    			var oValue = oUsername.value;
    
    			// 2、字符串长度必须是6~18位
    			if(oValue.length > 18 || oValue.length < 6){
    				oUsername_span.innerHTML = "长度应为6~18个字符";
    				//设置颜色为红色
    				oUsername_span.style.color = "red";
    			}else if(oValue[0] >= "0" && oValue[0] <= "9"){
    				oUsername_span.innerHTML = "首字母不能为数字";
    				//设置颜色为红色
    				oUsername_span.style.color = "red";
    			}else{
    
    				
    				//整个邮箱都必须符合数字字母下划线
    				//dada.dadad
    				var isTrue = false; // 没有不符合条件的
    				for(var i = 0; i < oValue.length; i++){
    					//一个一个去判断,如果有一个不符合条件,提示错误
    					if(isEmailRule(oValue[i]) == false){
    						isTrue = true;
    						break;
    					}
    				}
    
    				if(isTrue){
    					oUsername_span.innerHTML = "只能由数字、字母、下划线组成";
    					oUsername_span.style.color = "red";
    				}else{
    					oUsername_span.innerHTML = "符合要求";
    					oUsername_span.style.color = "green";
    				}
    			}
    		}
    
    		//判断一个字符,是否是数字、字母、下划线
    		function isEmailRule(charStr){
    			if(charStr >= "a" && charStr <= "z" || charStr >= "A" && charStr <= "Z" || charStr >= "0" && charStr <= "9" || charStr == "_"){
    				return true;
    			}else{
    				return false;
    			}
    		}
    		/*
    			密码: 1、长度  2、两次输入一致
    		*/
    	</script>
    

    4、字符串作业

    /*
    1.将字符串按照单词进行逆序,空格作为划分单词的唯一条件
    传入:”Welome to Beijing”改为 “Beijing to Welcome”
    */

                function reverseStr(str){
    				var arr = str.split(" ");
    				arr.reverse();
    				return arr.join(" ");
    			}
    
    			/*var str = reverseStr("Welome to Beijing");
    			alert(str);*/
    

    /*
    2.对称数组
    传入一个数组,起元素类型与个数皆未知,返回新数组,
    由原数组的元素正序反序拼接而成
    传入[“One”, “Two”,”Three”]
    返回[“One”, “Two”, “Three”,”Three”,”Two”, “One”]

    		*/
    
                function symmetryArr(arr){
    				//生成新数组
    				var newArr = arr.concat();
    				for(var i = arr.length - 1; i >= 0; i--){
    					newArr.push(arr[i]);
    				}
    				return newArr;
    			}
    
    			// alert(symmetryArr(["one", "two", "three"]));
    

    /*
    3.实现函数,查找子串出现的次数,返回字符串str中出现substring的次数
    传入:”abcabcabc”, “abc”
    返回:3
    */

    /*
    				supStr.indexOf(subStr, 0);
    				supStr.indexOf(subStr, 3);
    				supStr.indexOf(subStr, 6);
    				supStr.indexOf(subStr, 9);
    
    			*/
    
    			function countOfStr(supStr, subStr){
    
    				var start = 0;
    				var count = 0;
    				while(1){
    					start = supStr.indexOf(subStr, start);
    					if(start == -1){
    						break;
    					}
    					count++;
    					start = start + subStr.length;
    				}
    				return count;
    			}
    
    			alert(countOfStr("abcabcabc", "abc"));
    

    /*
    4.已知千峰邮箱的用户名只能由数字字母下划线组成,域名为@1000phone.com,判断一个字符串是否是千锋邮箱,是返回true,不是返回false。
    mail@1000phone.com 是
    $mail@1000phone.com 不是
    mail@1000phone.comp 不是
    */

                    function isEmail(email){
    				//1、将末尾的14个字符,提取,判断是否是@1000phone.com
    				var lastStr = email.substring(email.length - 14, email.length);
    				if(lastStr != "@1000phone.com"){
    					return false;
    				}else{
    					var arr = email.split("@");
    					var username = arr[0];
    
    					var count = 0; //记录有几个非法字符
    					//判断用户名 只能由数字字母下划线组成
    					for(var i = 0; i < username.length; i++){
    						if(isEmailRule(username[i]) == false){
    							count++;
    						}
    					}
    					if(count == 0){
    						return true;
    					}else{
    						return false;
    					}
    
    				}
    			}
    			var res = isEmail("mail@1000phone.com");
    			alert(res);
        			//判断一个字符,是否是数字、字母、下划线
        		function isEmailRule(charStr){
        			if(charStr >= "a" && charStr <= "z" || charStr >= "A" && charStr <= "Z" || charStr >= "0" && charStr <= "9" || charStr == "_"){
        				return true;
        			}else{
        				return false;
        			}
        		}
    		</script>
    
  • 相关阅读:
    gcd
    主流浏览器对HTML5的兼容性
    Adobe与苹果之争落败:停止开发移动版Flash
    谷歌程序员年薪高达25万美元以上
    Delphi开发人员指南 第一部份快速开发的基础 第2章 Object Pascal 语言(二)
    Delphi开发人员指南 第一部份快速开发的基础 第2章 Object Pascal 语言(三)
    Delphi开发人员指南 第一部份快速开发的基础 第2章 Object Pascal 语言(一)
    2011年10月编程语言排行榜
    第一个Flash游戏,小到几乎看不出来是做什么的
    'release' is unavailable: not available in automatic reference counting mode
  • 原文地址:https://www.cnblogs.com/zhongchao666/p/9275499.html
Copyright © 2020-2023  润新知