javascript简单的正则表达式入门
标签: javascript
内容来自百度前端学院javascript入门课程
基本的HTML:
<textarea placeholder="请输入字符并用不同符号分隔" rows="5" cols="20"></textarea>
<input type="button" value="插入" id="insert"/>
<input type="button" value="查询" id="search"/>
<input type="text" id="keyword"/>
<div id="container" class="container"></div>
样式:
.found{
background-color: #fff;
color:red;
}
textarea{
resize: none;
}
.container div{
display: inline-block;
float: left;
padding:0 10px;
margin: 5px 5px 0 0;
height:50px;
line-height:50px;
background-color: #FF0000;
color: #fff;
font-size: 30px;
font-weight: bold;
}
.container{
overflow: auto;
}
javascript:
var text = document.getElementsByTagName('textarea');
var container = document.getElementById('container');
var data = [];
window.onload = function(){
var insert = document.getElementById('insert');
var search = document.getElementById('search');
insert.onclick = function(){
var words =text[0].value;//获取textarea内容,为什么要用text[0]?
console.log(words);
words = words.replace(/[^0-9a-zA-Z]/g, '');//过滤掉除字母和数字外其他值
var arr = words.split(' ');//将字符串分割为字符(串)数组
for(var i = 0; i < arr.length; i++){
var oDiv = document.createElement('div');
oDiv.innerHTML = arr[i];
container.appendChild(oDiv);
data.push(arr[i]); //字符数组内容逐一加入新数组
}
}
search.onclick = function(){
var input = document.getElementById('keyword').value;
//对新数组中的字符(串)遍历操作
container.innerHTML = data.map(function(d){
if(input != null && input.length > 0){
d = d.replace(new RegExp(input, 'g'), '<span class="found">' + input + '</span>');//新建一个针对输入内容的正则对象,匹配模式为全局。选中的内容通过span标签包裹并增加样式
}
return "<div>" + d + "</div>" //将最后结果返回
}).join(''); //加入到一个数组中
}
}
document.write和innerHTML有什么区别
前者是直接将内容写入文档流,如果写入之前没有调用document.open,那么回自动调用document.open(每打开一次文档流都会清除之前的所有内容包括变量)。每次写完关闭后重新调用该函数的话,会导致页面重写。
innerHTML是将内容写入某个DOM节点,会导致目标节点重构。
如果是加载时用脚本输出,那么使用document.write合适;
如果是加载完成之后要加入内容,使用innerHTML比较适合
innerHTML和appendChild有什么区别?
前面讲到innserHTML会破坏目标元素,所以如果要在目标元素后面加入内容,那么就要在目标元素后添加一个空白节点,然后将需要插入的节点样式赋予目标元素.innerHTML。
使用appendChild之前要createElement,然后目标元素.appendChild。
一般来说appendChild的性能更优
<div id="target">目标元素</div>
要在其后加入内容
innerHTML:
<div id="target">目标元素</div>
<div></div>
var tar = document.getElementById("target");
tar.innerHTML = "<div>新建元素</div>"
appendChild:
<div id="target">目标元素</div>
var tar = document.getElementById("target");
var add = document.createElement("div");
tar.appendChild(add);
网上找到一张图,来自知乎:
相关问题页:https://www.zhihu.com/question/24927450
map方法就是对一个数组的内容都做同一件事,然后输出
思考一下,jquery的$.each和$.map有什么区别?
实际上,它们两个方法都是遍历,但是each没有返回值,所以不会新建一个数组,而map有返回值,会新建一个数组。
function fun1() {
return this + 1;
}
function fun2(el) {
return el + 1;
}
var item = [5,4,3,2,1];
var newitem1 = $.each(item, fun1);
var newitem2 = $.map(item, fun2);
console.log(newitem1); // [5, 4, 3, 2, 1]
console.log(newitem2); // [6, 5, 4, 3, 2]
map()方法主要用来遍历操作数组和对象,each()主要用于遍历jquery对象。
参考:
jQuery的each与map的区别(很详细)
https://stackoverflow.com/questions/749084/jquery-map-vs-each
jQuery内置函数map和each的用法
智能推荐
JavaScript正则表达式
JavaScript正则表达式 正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,获取将字符串中符合规则的内容提取出来 创建正则表达式的对象 语法: var 变量 = new RegExp(“正则表达式”,“匹配模式”); 使用typeof检查正则对象,会返回object 在构造函数中可以传递一个匹配模式作为...
javascript正则表达式
// 正则: // 正确的规则: // 字符的正则的规则,所以说,正则使用来操作字符串的 1.正则创建 2. 正则的组成 // var str = “@#%^& .!@#%^&*(_123sdf123!@#”; 3.正则的应用 // var str = “y12gSD31g3@#jh1f3%^&ASj138S!@DFG6a*()s8idh...
javascript正则表达式总结
基础篇 1.正则中的 开始和结束限制符号 1. ^表示匹配字符串的开始,$表示匹配字符串的结束 [javascript] view plain copy print? var reg = /^this/; //只能匹配开始位置为this 的字符串。 var str = ‘this&n...
『JavaScript』正则表达式
本篇博客介绍一些正则表达式相关的语法以及一些字符串的方法。 什么是正则表达式? 正则表达式(Regular Expression,在代码中常简写为regex,regexp或RE),又称为规则表达式。主要用来定义一些字符串的规则,使得计算机可以根据正则表达式来检查一个字符串是否符合规则。 正则表达式的创建 正则表达式有两种创建方式: 使用构造方法创建;语法:var reg = new RegExp(...
JavaScript正则表达式
RegExp 对象 正则表达式是描述字符模式的对象。用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。 语法 修饰符 方括号 表达式 描述 [abc] 查找方括号内的任何字符 [^abc] 查找任何不在方括号里面的字符 [0-9] 查找0-9之间的任何一个数字 [a-z] 查找小写字母a-z之间的任何一个字符 [A-Z] 查找 大写字母A-Z之间的任何一个字符 A-z 查找从A-z...
猜你喜欢
JavaScript 正则表达式
JavaScript 正则表达式 正则表达式在很多地方都要用,java,python,C#,javascript等还有很多,但正则表达式不会受语言的影响,他遵守正则表达式语法,今天我要说的就是javascript的正则表达式的用法,和几个常用的api. 1.什么是正则表达式? 正则表达式是构成搜索模式(search pattern)的字符序列。 .当您搜索文本中的数据时,您可使用搜索模式来描述您搜...
javascript正则表达式
by 年华 :http://blog.csdn.net/wu595679200/article/details/50488020 基础篇 1.正则中的 开始和结束限制符号 1. ^表示匹配字符串的开始,$表示匹配字符串的结束 2. ^和$同时出现在匹配模式的开始和结束位置时,只匹配他们之间的部分 3 . ^不在开始位置而是在[]时意思是取反的意思 也就是不包含的意思...
Java运行原理
1.Java运行原理 我们可通过文本编辑板生成Java源代码(.java)经过dos窗口由Java编译器(javac.exe)生成字节码文件(.class),字节码可由Java虚拟机转化为机器码供计算机读取处理。由于Java可以生成字节码可供虚拟机转译所以可跨平台运行。运行过程如下: 所以相对于C语言还需要转化为exe文件才能运行的权限,Java具有跨平台...
Python由放弃到入门,基础篇七(类)下
类的实例化 有感于现在python教程多如牛毛,且大多高不可攀,多次拜读而不得其门道,遂由入门到放弃。偶有机缘,得一不错教程,得以入门,现博客分享,想要获取完整教程,ff17328081445。 通过对比可以看到,实例化后再使用的格式,①是空着的,意思是这里不再需要@classmethod的声明,并且在第②处,把cls替换成了self。同时,实例化后再使用的格式,需要先赋值然后再调用(第③处): ...
pytorch CNN手写字体识别
数据整体训练一次,对于accuracy都是0的问题,由于刚开始学,有些代码的细节我也没看懂,不过整体结果是对的,可能是由于pytorch版本的更新,导致accuracy的计算方式有所改变 内容转载自:https://www.bilibili.com/video/av15997678/?p=19...
