js常用函数 _01 关于 model()、substr() 和 正则表达式的使用
js常用函数 _01 关于 model()、substr() 和 正则表达式的使用
1、model()
Bootstrap 模态框(Modal)插件
模态框(Modal)是覆盖在父窗体上的子窗体。通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动。子窗体可提供信息、交互等。
想要单独引用该插件的功能,那么您需要引用 modal.js。
详细说明 https://www.runoob.com/bootstrap/bootstrap-modal-plugin.html
2、substr()
实例
// 抽取指定数目的字符:
var str="Hello world!";
var n=str.substr(2,3)
// n 输出结果:
// llo
// 使用 substr() 从字符串第二个位置中提取一些字符:
var str="Hello world!";
var n=str.substr(2)
// n 输出结果:
// llo world!
定义和用法
substr() 方法可在字符串中抽取从 开始 下标开始的指定数目的字符。
提示: substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。在之后的版本中,此 BUG 已被修正。
ECMAscript 没有对该方法进行标准化,因此反对使用它。
注意: substr() 方法不会改变源字符串。
语法
string.substr(start,length)
参数值
| 参数 | 描述 |
|---|---|
| start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
| length | 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
返回值
| 类型 | 描述 |
|---|---|
| String | A new string containing the extracted part of the text |
3、正则表达式的使用
实例
var txtvalve = this.value;
var reg = new RegExp(/^\d+$/);
if(!reg.test(txtvalve)){
alert("必须输入数字")
}
test() 方法用于检测一个字符串是否匹配某个模式.
语法
RegExpObject.test(string)
| 参数 | 描述 |
|---|---|
| string | 必需。要检测的字符串。 |
返回值
如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
(出处:https://www.w3school.com.cn/jsref/jsref_test_regexp.asp)
说明
调用 RegExp 对象 r 的 test() 方法,并为它传递字符串 s,与这个表示式是等价的:(r.exec(s) != null)。
exec() 方法用于检索字符串中的正则表达式的匹配。
exec() 方法语法
RegExpObject.exec(string)
| 参数 | 描述 |
|---|---|
| string | 必需。要检索的字符串。 |
返回值
返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
说明
exec() 方法的功能非常强大,它是一个通用的方法,而且使用起来也比 test() 方法以及支持正则表达式的 String 对象的方法更为复杂。
如果 exec() 找到了匹配的文本,则返回一个结果数组。否则,返回 null。此数组的第 0 个元素是与正则表达式相匹配的文本,第 1 个元素是与 RegExpObject 的第 1 个子表达式相匹配的文本(如果有的话),第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本(如果有的话),以此类推。除了数组元素和 length 属性之外,exec() 方法还返回两个属性。index 属性声明的是匹配文本的第一个字符的位置。input 属性则存放的是被检索的字符串 string。我们可以看得出,在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。
但是,当 RegExpObject 是一个全局正则表达式时,exec() 的行为就稍微复杂一些。它会在 RegExpObject 的 lastIndex 属性指定的字符处开始检索字符串 string。当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。
提示和注释
重要事项:如果在一个字符串中完成了一次模式匹配之后要开始检索新的字符串,就必须手动地把 lastIndex 属性重置为 0。
提示:请注意,无论 RegExpObject 是否是全局模式,exec() 都会把完整的细节添加到它返回的数组中。这就是 exec() 与 String.match() 的不同之处,后者在全局模式下返回的信息要少得多。因此我们可以这么说,在循环中反复地调用 exec() 方法是唯一一种获得全局模式的完整模式匹配信息的方法。(出处:https://www.w3school.com.cn/jsref/jsref_exec_regexp.asp)
实例
// 在本例中,我们将全局检索字符串中的 W3School:
<script type="text/javascript">
var str = "Visit W3School";
var patt = new RegExp("W3School","g");
var result;
while ((result = patt.exec(str)) != null) {
document.write(result);
document.write("<br />");
document.write(patt.lastIndex);
}
</script>
// 输出:
W3School
14
一些常用的通过正则表达式进行输入检查的实例
$.validator.methods.engnum = function(value, element) {
// 半角字母数字
var reg = /^[0-9a-zA-Z]+$/;
return this.optional(element) || reg.test(value);
};
$.validator.methods.engnumhyphen = function(value, element) {
// 半角字母数字,-(连字符)
var reg = /^[0-9a-zA-Z\-]+$/;
return this.optional(element) || reg.test(value);
};
$.validator.methods.engnumhyphenspace = function(value, element) {
// 半角字母数字、-(连字符)、半角空格
var reg = /^[0-9a-zA-Z\- ]+$/;
return this.optional(element) || reg.test(value);
};
$.validator.methods.halfnum = function(value, element) {
// 半角数字
var reg = /^[0-9]*$/;
return this.optional(element) || reg.test(value);
};
$.validator.methods.allchar = function(value, element) {
var reg = /^[\x20-\x7e]+$/;
return this.optional(element) || reg.test(value);
};
$.validator.methods.date1 = function(value, element) {
// date pattern: ddMMMyy hhmm
var reg = /^(\d{2})(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(\d{2}[ ]{1}\d{2}\d{2})$/gi;
return this.optional(element) || validateDate(value, element, reg);
};
$.validator.methods.date2 = function(value, element) {
// date pattern: DDMMMYY OR DDMMMYYYY
var reg = /^(\d{2})(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(\d{2}|\d{4})$/gi;
return this.optional(element) || validateDate(value, element, reg);
};
$.validator.methods.date3 = function(value, element) {
// date pattern: DDMMMYY OR DDMMMYYYY
var reg = /^(\d{2})(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(\d{2})$/gi;
return this.optional(element) || validateDate(value, element, reg);
};
4、this.optional
this.optional(element)是jquery.validator.js表单验证框架中的一个函数,用于表单控件的值不为空时才触发验证。
简单来说,就是当表单控件值为空的时候不会进行表单校验,此函数会返回true,表示校验通过,当表单控件值不为空的时候会执行后面的校验条件判断,并返回校验结果true或者false。一般在返回此函数返回值时会在后面使用||来连接一个校验条件。
示例代码如下:
jQuery.validator.addMethod("number", function(value, element) {
return this.optional(element) || /[0-9]{1,2}/.test(value);
}, "请输入0-99的整数");
在这个例子中,当被执行校验的表单控件的值为空时,将直接返回true,即表单验证通过。当被执行校验的表单控件的值不为空时,会执行||后面的正则表达式匹配0-99的整数,匹配成功,则返回true,否则返回false。
js常用函数 _01 关于 model()、substr() 和 正则表达式的使用的更多相关文章
- ecshop里提出来的js常用函数
目录 Utils.js jquery.listTable.js 使用例子: ecshop里提出来的js常用函数 Utils.js /* $Id : utils.js 5052 2007-02-03 1 ...
- 总结js常用函数和常用技巧(持续更新)
学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...
- js常用函数和常用技巧
学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...
- js常用函数整理
类型转换:parseInt\parseFloat\toString 类型判断:typeof;eg:if(typeof(var)!="undefined")\isNaN 字符处理函数 ...
- js常用函数汇总(不定期更新)
1.图片按比例压缩 function setImgSize(){ var outbox_w=imgbox.width(), outbox_h=imgbox.height(); imgbox.find( ...
- JavaScript学习总结(9)——JS常用函数(一)
本文中,收集了一些比较常用的Javascript函数,希望对学习JS的朋友们有所帮助. 1. 字符串长度截取 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...
- 总结JS 常用函数
希望本文总结的内容能给各位看官带来焕然一新的感觉.另外,如果你们有什么值得推荐的js技巧,欢迎在评论中补充,我可以收纳在本文中. PS:此文档会持续新增内容. Ajax请求 jquery ajax函数 ...
- js常用函数、书写可读性的js、js变量声明...
1.Array类型函数 array.concat(item...) 函数功能:关联数组,实现数组相加功能,但并不影响原先数组,concat返回新数组. array.join(separator) 函数 ...
- js常用函数大全107个
1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4. ...
- js常用函数总结
字符串函数 indexOf 返回字符串中一个子串第一处出现的索引(从左到右搜索).如果没有匹配项,返回 -1 . var index1 = a.indexOf("l"); //in ...
随机推荐
- 如何在Ubuntu系统中进行系统级的代理设置
在Ubuntu系统中我们往往需要设置代理上网,比如在Ubuntu22.04中,通过图形化界面的设置方式如下: 这里假设代理服务器地址为: 192.168.1.103:1080 ============ ...
- [USACO22FEB] Paint by Rectangles P 题解
前言 没用线段树的小常数.小短码. 题目链接:洛谷. 题意简述 给出 \(n\) 个平行于坐标轴的矩形,各边所在直线互不重合,钦定最外面为白色,对这个平面图黑白染色,分别求黑色块数和白色块数. 题目分 ...
- Apache SeaTunnel 社区 3 月月报
各位热爱 SeaTunnel 的小伙伴们,SeaTunnel 社区 3 月月报来啦!这里将记录 SeaTunnel 社区每个月的重要更新,并评选出月度之星,欢迎关注. SeaTunnel 月度 Mer ...
- Aspire8一文通
Aspire8一文通 0.简介 微软Aspire是微软今年推出的一个全新的平台无关.语言无关的新框架,它的设计目的是简化云原生应用的开发.部署和管理过程.Aspire的读音是[əˈspaɪər],它的 ...
- zuul集成apollo动态刷新配置
zuul集成apollo实现路由配置的动态刷新 import com.ctrip.framework.apollo.model.ConfigChangeEvent; import com.ctrip. ...
- 关于腾讯会议pc端的使用教程
一.首先先在官网下载pc端 下面是连接:腾讯会议_腾讯会议下载- 腾讯云 (tencent.com) 点击免费下载即可. 二.登录并创建会议 选择一种登录方式. 创建会议有快速会议和预定会议两种方式 ...
- 【Python自动化】之特殊的自动化定位操作
今天有时间了,想好好的把之前遇到过的自动化问题总结一下,以后有新的总结再更新 目录: 一.上传文件(4.11) 二.下拉框选择(4.11) 1.Select下拉框 2.非Select下拉框 三.下拉框 ...
- 【Jmeter】之进行单接口批量压力测试
目录: 一.安装Jmeter 二.接口压力测试 p.p1 { margin: 0; font: 14px ".PingFang SC"; color: rgba(17, 31, 4 ...
- docker高级篇第三章-dockerfile案例之制作自己的centos镜像
在上一篇文章中<Dockerfile介绍及常用保留指令>,我们介绍了Dockerfile是什么以及Dockerfile常用的保留字段.熟悉了这些之后,有没有想自己动手写一个Dockerfi ...
- MiniMax:如何基于 JuiceFS 构建高性能、低成本的大模型 AI 平台
MiniMax 成立于 2021 年 12 月,是领先的通用人工智能科技公司,致力于与用户共创智能.MiniMax 自主研发了不同模态的通用大模型,其中包括万亿参数的 MoE 文本大模型.语音大模型以 ...