1.关于日期转换格式
2.获取选中文字
3.复制
4.关于IE 浏览器判断问题
5.冒泡排序
6.快速排序
7.复制
8.复制
<h3 id="1">1.关于日期转换格式</h3>
var formatDateTime = function(date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
var minute = date.getMinutes();
minute = minute < 10 ? ('0' + minute) : minute;
return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
};
<h3 id="2">2.获取选中文字</h3>
document.selection.createRange()
根据当前文字选择返回 TextRange 对象,或根据控件选择返回 ControlRange 对象。
<h3 id="3">3.复制</h3>
function copyText(id) {
//获取节点
var n = $("#" + id);
if (n == null) {
//节点为空直接返回
return;
}
try {
//取得浏览器的userAgent字符串
var userAgent = navigator.userAgent;
//判断Ie
if (userAgent.indexOf("MSIE") > 0) {
window.clipboardData.setData('text', n.val());
var copyContent = window.clipboardData.getData("text");
//判断复制成功,ie复制可选择是否允许
if (copyContent == n.val()) {
alert("复制成功。现在您可以粘贴(Ctrl+v)到Blog 或BBS中了。");
return;
}
} else {
n.select();
therange = void 0;
if (n.createTextRange) therange = n.createTextRange();
therange = therange ? therange : document;
if (therange.execCommand("Copy")) {
alert("复制成功。现在您可以粘贴(Ctrl+v)到Blog 或BBS中了。");
return;
}
}
} catch (i) {}
alert("您使用的浏览器不支持此复制功能,请使用Ctrl+C或鼠标右键。");
}
<h3 id="4">4.关于IE 浏览器判断问题</h3>
function isIE() {
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/rv:([\d.]+)\) like gecko/)) ? Sys.ie = s[1]:
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
if (isIE && (window.navigator.userProfile + '') == 'null') {
alert("本网站请使用360极速模式浏览");
} else
if (window.navigator.appName.indexOf("Microsoft") != -1) {
alert("本网站不支持IE浏览器,建议使用谷歌浏览器");
window.location.href = "http://www.googlechromer.cn/";
} else
if (Sys.ie) {
alert("本网站不支持IE浏览器,建议使用谷歌浏览器");
window.location.href = "http://www.googlechromer.cn/";
}
}
isIE();
<h3 id="5">5.冒泡排序</h3>
每一次对比相邻两个数据的大小,小的排在前面,如果前面的数据比后面的大就交换这两个数的位置 要实现上述规则需要用到两层for循环,外层从第一个数到倒数第二个数,内层从外层的后面一个数到最后一个数
缺点是比较次数多,效率较低。
function bubbleSort(arr) {
var len = arr.length,
j;
var temp;
while (len > 0) {
for (j = 0; j < len - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
i--;
}
return arr;
}
<h3 id="6">6.快速排序</h3>
先找到一个基准点(一般指数组的中部),然后数组被该基准点分为两部分,依次与该基准点数据比较,如果比它小,放左边;反之,放右边。左右分别用一个空数组去存储比较后的数据。最后递归执行上述操作,直到数组长度<=1;
缺点是需要另外声明两个数组,浪费了内存空间资源。
var times = 0;
var quickSort = function(arr) {
//如果数组长度小于等于1无需判断直接返回即可
if (arr.length <= 1) {
return arr;
}
var midIndex = Math.floor(arr.length / 2); //取基准点
var midIndexVal = arr.splice(midIndex, 1); //取基准点的值,splice(index,1)函数可以返回数组中被删除的那个数arr[index+1]
var left = []; //存放比基准点小的数组
var right = []; //存放比基准点大的数组
//遍历数组,进行判断分配
for (var i = 0; i < arr.length; i++) {
if (arr[i] < midIndexVal) {
left.push(arr[i]); //比基准点小的放在左边数组
} else {
right.push(arr[i]); //比基准点大的放在右边数组
}
console.log("第" + (++times) + "次排序后:" + arr);
}
//递归执行以上操作,对左右两个数组进行操作,直到数组长度为<=1;
return quickSort(left).concat(midIndexVal, quickSort(right));
};
console.log(quickSort(arr));
<h3 id="7">7.字符串操作</h3>
1. 切割字符串
htmlUrl
var url = htmlUrl.split("/");