1.去掉数组中重复的值
Array.prototype.unique = function() {
var data = this || [];
var a = {}; //声明一个对象,javascript的对象可以当哈希表用
for (var i = 0; i < data.length; i++) {
a[data[i]] = true; //设置标记,把数组的值当下标,这样就可以去掉重复的值
}
data.length = 0;
for (var i in a) { //遍历对象,把已标记的还原成数组
this[data.length] = i;
}
return data;
};
var a = new Array("5","7","7");
alert(a);
alert(a.unique());
2.删除数组中指定的值
Array.prototype.remove = function(val) {
for(var i = 0; i < this.length; i++) {
if(this[i] == val) {
for(var j = i; j < this.length - 1; j++)
this[j] = this[j + 1];
this.length -= 1;
}
}
}
3.在字符串的左边填充一些特定的字符
String.prototype.lpad = function(len, s) {
var a = new Array(this);
var n = (len - this.length);
for ( var i = 0; i < n; i++) {
a.unshift(s);
}
return a.join("");
}
4.在字符串的右边填充一些特定的字符
String.prototype.rpad = function(len, s) {
var a = new Array(this);
var n = (len - this.length);
for ( var i = 0; i < n; i++) {
a.push(s);
}
return a.join("");
}
5.获取星期几
function getWeek() {
var a = new Array("周日", "周一", "周二", "周三", "周四", "周五", "周六");
var d = new Date().getDay();
return a[d];
}
6.获取日期
function getDate() {
var mydate = new Date();
var y = mydate.getYear();
var m = String(mydate.getMonth() + 1).lpad(2, "0");
var d = String(mydate.getDate()).lpad(2, "0");
var a = new Array(y, m, d);
return a.join("-");
}
7.把字符串的首字母转化为大写
String.prototype.initialsToUpper = function() {
return this.substring(0,1).toUpperCase().concat(this.substring(1));
};
8.判断一个字符串中是否包含某字符
String.prototype.contains = function(str) {
return this.indexOf(str) > -1 ? true : false;
};
9.去掉字符串的空格
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
};
String.prototype.lTrim = function() {
return this.replace(/(^\s*)/g, "");
};
String.prototype.rTrim = function() {
return this.replace(/(\s*$)/g, "");
};
10.操作表单元素的几个js方法
//删除下拉框选项
function removeAllOptions(obj) {
for (var k = obj.length - 1; k > 0; k--) {
obj.remove(k);
}
}
//添加下拉框选项
//其中data是action传过来的TreeMap值
function appendAllOptions(obj, data) {
removeAllOptions(obj);
// data = data.substr(1, data.length - 2);
var arg = data.split(",");
for (var i = 0; i < arg.length; i++) {
var val = arg[i].split("=");
obj.add(new Option(val[1], val[0]));
}
}
//通过已选中checkbox的id获取当前行第n列的值,并组合成字符串返回
function getTDText(chkId, n) {
var temp = "";
var ids = chkId.split(",");
for (var i = 0; i < ids.length; i++) {
var tr = $(ids[i]).parentElement.parentElement;
if (temp == "") {
temp = tr.cells[n].innerText.trim();
} else {
temp += "," + tr.cells[n].innerText.trim();
}
}
return temp;
}
//获取一组radio选中项的值
function getRadioValue(name) {
var obj = document.getElementsByName(name);
if (obj != null) {
for(i = 0; i < obj.length; i++) {
if (obj[i].checked) {
return obj[i].value;
}
}
}
return null;
}
//全选或取消全选
function chkAll(ele) {
var objArray = document.getElementsByName("chk");
for (var i = 0; i < objArray.length; i++) {
objArray[i].checked = ele.checked;
}
}
//获取选中的ID
function getChkVal() {
var ids = "";
var objArray = document.getElementsByName("chk");
for (var i = 0; i < objArray.length; i++) {
if (objArray[i].checked) {
if (ids == "") {
ids = objArray[i].id;
} else {
ids += "," + objArray[i].id;
}
}
}
return ids;
}
11.几个验证的js方法
//验证是否为合法的手机号码
String.prototype.isMobile = function() {
return /^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/.test(this.trim());
};
//验证是否为合法的电话号码或传真
String.prototype.isPhone = function() {
return /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(this.trim());
};
//验证是否为合法的Email
String.prototype.isEmail = function() {
return /^[a-zA-Z0-9_\-]{1,}@[a-zA-Z0-9_\-]{1,}\.[a-zA-Z0-9_\-.]{1,}$/.test(this.trim());
};
//验证是否为合法的邮编
String.prototype.isPost = function() {
return /^\d{6}$/.test(this.trim());
};
//验证是否为合法的网址
String.prototype.isUrl = function() {
var strRegex = "^((https|http|ftp|rtsp|mms)://)"
+ "(([0-9a-z_!~*’().&=+$%-]+: )?[0-9a-z_!~*’().&=+$%-]+@)?" //验证ftp的user@
+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // 验证IP形式的URL
+ "|" // 允许IP和DOMAIN(域名)
+ "([0-9a-z_!~*’()-]+\.)*" // 域名- www.
+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名
+ "[a-z]{2,6})" // 一级域名
+ "(:[0-9]{1,4})?" // 端口
var re = new RegExp(strRegex);
return re.test(this.trim());
};
12.清除非数字包含小数点
function clearNoNum(obj) {
//先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d.]/g,"");
//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");
//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");
//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
onkeyup="clearNoNum(this)" (这个可以输入小数点) 或者 onkeyup="value=value.replace(/[^\d]/g,'')" (这个只能输入数字)
13.四舍五入并控制小数位数
Number(12345.67890).toFixed(2);
分享到:
相关推荐
内容概要:通过简单的JS扩展实现表头表体联动 适用人群:T+二次开发,畅捷通二次开发 能学到什么:你不知道的T+开发方法 阅读建议:结合视频动手操作
【下一章】 【索引】 【这是目录】 ---------------------------------------...netscape.javascript.JSObject 方法和静态方法 netscape.javascript.JSException 构造函数 netscape.plugin.Plugin 构造函数和方法
扩展插件(Save All Resources),用这个插件可以下载整个网页的静态资源源代码包,包括图片、js、 html、css; 插件安装方法:将zip压缩包整个拖入谷歌浏览器扩展程序界面(chrome://extensions/),这样浏览器就能...
为了将其扩展为并集和差异,仅需要更改顶点分类规则。 需要合并更多的测试数据。 为了实现vatti算法,我使用了双重循环链表。 我找到了一个,但是我不得不对其进行很多修改。 我正在为排序的双链表寻找可靠的实现。...
适用于大型可扩展项目的Nuxt.js样板 在Vue + Nuxt.js上开发项目中解决头痛的方法。 作为平台 开发UI组件的 (与eslint和stylelint规则不冲突) 生产资产优化: 和 Webpack Vue 准备的基本组件和文件结构 带有...
打开扩展管理器(工具->扩展管理器)并安装JavaScript扩展。通过URL 请注意,从GitHub安装将提供master分支的HEAD上的所有内容。 这不能保证是稳定的。 打开StarUML扩展管理器(工具->扩展管理器)。 在弹出窗口的...
适用于JavaScript的AWS开发工具包版本3.x现在可用适用于JavaScript的AWS...在Node.js中安装适用于Node.js的AWS开发工具包的首选方法是对Node.js使用软件包管理器。 只需在终端窗口中输入以下内容: npm install aws-s
适用于大型可扩展项目的Next.js样板 Next.js开发项目中头痛的解决方法。 作为框架 用于隔离开发UI组件的(配置与Next.js不冲突) 和用于应用程序状态管理 带有 与和插件 与和的整合 更漂亮(与eslint和stylelint...
KauBoard,适用于韩国航空大学生的Chrome扩展程序 成品图 内容 项目介绍 该项目旨在为韩国航空大学学生创建具有内置各种便利功能的chrome扩展程序。 使用的技术 该项目使用React.js库构建,而API服务器将使用Node.js...
vue-h5-plusH5Plus Extend for Vue.js加入了babel-polyfill安装npm install vue-h5-plus基本使用import Vue from 'vue'import plus from 'vue-h5-plus'Vue.use(plus)组件选项其方法中的this指向组件- load选项在组件...
适用于Chrome的WakaTime扩展 目的 允许记录和分类在Google Chrome中花费的时间以显示在您的WakaTime上 我需要一种方法来确定我的网络浏览在工作时的焦点所在,因为大部分浏览都是与工作相关的,但是我希望能够确定...
在线调用js,并添加回调,适用于qq在线状态等,可直接使用, 可做扩展,自己用到的,测试通过
Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将Python置于Java、C和JavaScript之上,真的非常荣幸了. 自从20世纪90年代初Python语言诞生至2022年,它已被逐渐广泛应用于系统...
好处轻巧(最小化5.8K) 语法与jQuery相同支持链接方法调用简化事件监听器管理适用于任何JS风格或库容易扩展用法 [removed][removed]例子创建基本Div元素 let $el = Div().addClass('my-div').attr('id', 'hello-...
这适用于您需要在一个地方拥有不同外观组件的“列表”,每个组件都由插件提供。 如果你只需要一个相同组件的列表,只是有不同的数据,不要使用vue-extensions只需使用v-for指令。安装在你的项目中安装这个库的最...
字符串.Slugify 扩展 String 本机对象以具有 slugify 方法,对 url slug 很有用。如何使用String.Slugify 扩展了原生 String 对象,因此它适用于任何普通字符串。 "slugify ME n%ø#w" . slugify ( ) 返回“slugify-...
##Enable 自动更新###One liner 自动更新功能适用于带有 UI 的站点扩展。 要使您的站点扩展程序自动更新,您只需在站点扩展程序的主页(或您的用户经常访问的任何页面)中包含以下脚本标记: <script sr
讲座内容: 利用面向对象类型系统是扩展组件的常用方法,但是我们在客户端进行开发的时候也不能忘记正在使用的是JavaScript这个非常灵活的动态语言,使用一些特殊的方式来扩展组件有时候会得到更好的效果。...
/src/main.js 设置全局注册变量、引入第三方工具(Element UI、store)。 /src/router/index.js 配置页面路由,每个路由对象都包含了路径(path),名称(name)和组件...更多说明以及使用方法见文件中的README!!!
forchange-snippets 一个基于vscode的适用于公司内部的代码片段扩展 ...1.为了代码开发更加便捷且规范开发了适用于apis.js vue routes.js ts的代码片段 forchange-snippets的使用说明 使用方法在vscode扩展中