前述:终于抽出时间,整理了一些编程中所需基础知识。
写好功能必要条件:1、基础知识。2、编程逻辑思路。后者最重要,因为:有些知识查资料再根据逻辑也可做出功能。功能逻辑思路图及解说在单独章节中讲解。在此只说必备必会js基础:
1、判断是否选中:
jauery:
$("#check_select").is(":checked") //false/ true
js:
<input class='checkbox-css' id='cbx_01' value='' type='checkbox'/>
...
var cb = document.getElementById("cbx_" + i);
if (cb.checked) {
....
}
2、获取table 某行某列值:
var table = document.getElementById('table');
console.log( table.rows[i].cells[j].innerHTML);
获取值:
//select
//选择:选项二
var select =document.getElementById('select');
var index=select.selectedIndex;
console.log(select.value);//v2
console.log(select.options[index].text);//选项二
console.log(select.options[index].value);//v2
//选择:选项一
console.log($("select[name='selectname']").val());// 1
console.log($("select[name='selectname'] option:selected").text());// 选项一
//选择:选项三
console.log($('#select').val());//v3
console.log($('#select option:selected').val());//v3
console.log($('#select option:selected').attr('value'));//v3
console.log($('#select option:selected').text());//选项三
//input
var input = document.getElementsByName("InputName");
for (i = 0; i < input.length; i++) {
console.log(input[i].value);
}
//div
var div=document.getElementById('div');
console.log(div.innerText);//信息
3、创建标签:
var div =document.createElement('div');
4、赋值标签:把a标签赋值到div标签中
div.appendChild('a');
5、json转换:
var jsonstr='[{"":""...},{}.....]';
var jsonData = new Function("return " + jsonstr)();//json字符串转json对象
var jsonData = eval(jsonstr);//json字符串转json对象
6、json个数:jsonData.length;
7、取json对象:
for(i=0;i<jsonData.length;i++){
for(value in jsonData[i]){
console.log( jsonData[i][value]);
}
}
8、button按钮:
<button id="bt_0"></button>
button.onclick = function(){
...
}
----
<input type="button" id="edit_0" value="sub"/>
var ed=document.getElementById('edit_0');
ed.onclick = function(){
...
}
9、标签添加name属性,:
div.setAttribute("name",01);
10、获取标签属性值:
this.getAttribute("name");
11、判断是否删除:
var info=...;
if(confirm("确认要删除名称为:"+info+"的信息吗?")){
console.log("是");
console.log(id);
....
}
else{
console.log("否");
}
12、正则表达式:
一、中文判断:
var reg = /[\u4e00-\u9fa5]/;
console.log( reg.test('美好的一天!'));//true
二、密码验证:由大小写字母、数字、及 * & % $ # @ _ . 特殊符号组成的8-20位密码。
var pw = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[!*&%$#@_.])[a-zA-Z\d!*&%$#@_.]{8,20}$/;
三、判断:手机号是否正确:1开头,第二位是3、4、5、7、8中任意一位,之后为0-9组成的9位数,共计11位数。
var reg = /^[1][3,4,5,7,8][0-9]{9}$/;
四、验证邮箱:(1)字母数字下划线组合开头,(2)@居中,(3)后加字母数字,(4)再加.英文点 ,(5)后跟2-4字母的组合
var emailreg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
五、验证数字
var numreg =/^(\-|\+)?\d+(\.\d+)?$/;
六、验证身份证号码:身份证号码15、18位数;当15位时全为数字,当18位时尾位数为校验位(数字 or 字母x、X)。
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
13、删除标签:
(1) div.removeChild(document.createElement('table'));
(2)id.innerHTML='';
(3) var div = document.getElementById('div');
div.parentNode.removeChild(div);
14、定时:
setTimeout(function () {
f();
}, 1000);//每隔1000ms(1s)执行f()方法一次。
function f(){
...
}
15、闭包
window.onload=function () {
var f=f1();
function f1(){
return function f2(){
var info="信息";
return info;
}
}
console.log(f());//输出:信息
}
16、js终止:return false;//之后的不执行。
17、json对象转json字符串:var jsonstr=JSON.stringify(json);
18、js 生成json数据:
方法一、
var json = [];
var rows = {};
rows.id= "01";
rows.name = "wangwu";
json.push(rows);
方法二、
var rows = {id:'02',name:'wangwu'}
json.push(rows);
19、页面高宽:
var w = document.body.clientWidth;
var h = document.body.clientHeight;
20、获取input值:
document.getElementById('input').value
21、模糊匹配值:
//模糊匹配-模糊查询:类似sql like '%%'
var str1="项目信息";
var str2="信息";
if(str1.indexOf(str2) > 0){
console.log(true);//输出:true
}else{
console.log(false);
}
22、jquery循环:
$("#divid input").each(function(){
});
23、把数字和汉字分开、取汉字和数字部分:
var re1 = /(\d{1,3})+(?:\.\d+)?/g
var re2 = /[\u4e00-\u9fa5]{2,}/g
var str="苹果20.55%";
var arr1 = str.match(re1);
var arr2 = str.match(re2);
console.log(arr1);//20.55
console.log(arr2);//苹果
24、字符串转数字:
var str="123";
var strf="11.234";
console.log(parseInt(str));//123
console.log(parseFloat(strf));//11.234
console.log(Number(str),Number(strf));//123 11.234
console.log(Number(str)+Number(strf));//134.234
25、数字四舍五入:
//四舍五入/约等于:
var num=9.532;
console.log(Math.round(num * 10) / 10);//9.5
var num1=2.674;
console.log(Math.round(num1) );//3
console.log(Math.round(num1 * 10) / 10);//2.7
var num2=3.15482;
console.log(num2.toFixed(1));//3.2
console.log(num2.toFixed(2));//3.15
console.log(num2.toFixed(3));//3.155
console.log(num2.toFixed(4));//3.1548
console.log(Math.round(num2));//3
console.log(parseFloat(num2).toFixed(4));//3.1548
var num4=3.5372839;
console.log(Math.round(num4));//4
console.log(num4.toFixed(1));//3.5
console.log(num4.toFixed(2));//3.54
console.log(num4.toFixed(3));//3.537
console.log(num4.toFixed(4));//3.5373
26、判断是数字:
//是数字 isNaN false,若是非数字isNaN true
if(!isNaN(num));// num是数字,true
27、弹框:
alert("弹框");//一般不用。
console.log("test info");//F12 console 输出: test info
28、排序:
/*------------排序:-----------*/
/*正序:*/
var array = [7455,52,564,324,885,4632,1,5,73,4,8];
array.sort(function(a,b){
return a - b;
});
console.log(array);//输出[1, 4, 5, 8, 52, 73, 324, 564, 885, 4632, 7455]
/*倒序:*/
var array1 = [7455,52,564,324,885,4632,1,5,73,4,8];
array1.sort(function(a,b){
return b - a;
});
console.log(array1);//输出[7455, 4632, 885, 564, 324, 73, 52, 8, 5, 4, 1]
var array2 = [{id:'2kh45l3mm4n5l2l4h2',num:8},{id:'3kh45l3mm4n5l2l4h2',num:98},{id:'dfj3l4h2j4ssio4',num:7}
,{id:'ll43jro4hretlir94',num:998},{id:'lwei234j2l34idjdrir8el',num:3}];
array2.sort(function(a,b){
return a.num - b.num
});
console.log(array2);
//输出:
// 0: {id: "lwei234j2l34idjdrir8el", num: 3}
// 1: {id: "dfj3l4h2j4ssio4", num: 7}
// 2: {id: "2kh45l3mm4n5l2l4h2", num: 8}
// 3: {id: "3kh45l3mm4n5l2l4h2", num: 98}
// 4: {id: "ll43jro4hretlir94", num: 998}
var array3 = [{id:'2kh45l3mm4n5l2l4h2',num:8,sum:874},{id:'3kh45l3mm4n5l2l4h2',num:98,sum:534},{id:'dfj3l4h2j4ssio4',num:7,sum:21}
,{id:'ll43jro4hretlir94',num:998,sum:3},{id:'lwei234j2l34idjdrir8el',num:3,sum:76}];
array3.sort(function(a,b){
if(a.num === b.num){//如果id相同,按照age的降序
return b.sum - a.sum
}else{
return a.num - b.num
}
});
console.log(array3);
//输出(num列递增):
//0: {id: "lwei234j2l34idjdrir8el", num: 3, sum: 76}
//1: {id: "dfj3l4h2j4ssio4", num: 7, sum: 21}
//2: {id: "2kh45l3mm4n5l2l4h2", num: 8, sum: 874}
// 3: {id: "3kh45l3mm4n5l2l4h2", num: 98, sum: 534}
//4: {id: "ll43jro4hretlir94", num: 998, sum: 3}
/* 冒泡排序-正序:*/
function f(array) {
for (i = 0; i < array.length; i++) {
for (t = 0; t < array.length - i - 1; t++) {
if (array[t] > array[t + 1]) {
var num = array[t];
array[t] = array[t + 1];
array[t + 1] = num;
}
}
}
return array;
}
console.log(f([5, 3, 78, 32, 95, 32, 56, 2]));//[2, 3, 5, 32, 32, 56, 78, 95]
/* 冒泡排序倒序:*/
console.log(f([5, 3, 78, 32, 95, 32, 56, 2]).reverse());//[95, 78, 56, 32, 32, 5, 3, 2]
/*以下可略:*/
/*不带参数的排序--任意排序:*/
var array4 = ['张三','李四','王五'];
console.log(array4.sort());//输出["张三", "李四", "王五"]
var array5 = [7455,52,564,324,885,4632,1,5,73,4,8];
console.log(array5.sort());//输出:[1, 324, 4, 4632, 5, 52, 564, 73, 7455, 8, 885]
29、获取一段字符:
var str ="sert";
var string=str.substr(2,3);//rt
30、阶乘c5 3:
window.onload = function () {
var a=1;
var b=1;
var c;
for(var i=0;i<3;i++){
a*=5-i;
b*=3-i;
}
c=a/b;
console.log(c);
}
未完待续...