在头文件 regex 中有关于正则表达式的实现和接口。
cmatch、smatch 类保存匹配结果。
Blob(Binary Large Object)术语最初来自数据库,早期数据库因为要存储声音、图片、以及可执行程序等二进制数据对象所以给该类对象取名为Blob。
Blob 对象表示一个不可变、原始数据的类文件对象。Blob 表示的不一定是JavaScript原生格式的数据。File 接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。
要从其他非blob对象和数据构造一个Blob,请使用 Blob() 构造函数。要创建包含另一个blob数据的子集blob,请使用 slice()方法。文件继承自Blob。
BLOB 类的构造函数、熟悉和方法参考 MDN
一个关于BLOB的博客 显示本地图片文件
var input = document.createElement('input');
input.type = 'file';
input.accept = 'image/*';
input.multiple = true;
input.style.display = 'none';
document.body.appendChild(input);
var fileSelect = document.createElement('a');
fileSelect.href = '#';
fileSelect.appendChild(document.createTextNode('Choose files'));
document.body.appendChild(fileSelect);
var imgList = document.createElement('div');
imgList.innerHTML = '<p > No file Selected!</p >';
document.body.appendChild(imgList);
input.addEventListener('change',
function(e){
var files = this.files;
if(files.length == 0){
return ;
}else{
imgList.innerHTML = '';
var ls = document.createElement('ul');
imgList.appendChild(ls);
for(var i = 0;i < files.length; i++){
var li = document.createElement('li');
ls.appendChild(li);
var img = document.createElement('img');
img.src = window.URL.createObjectURL(files[i]);
img.height = 60;
img.width = 60;
img.onload = function(){
window.URL.revokeObjectURL(img.src);
};
li.appendChild(img);
var info = document.createElement('span');
info.innerHTML = files[i].name + ':' + files[i].size + ' bytes.';
li.appendChild(info);
}
}
},
false);
fileSelect.addEventListener('click',
function(e){
input.click();
e.preventDefault();
},
false);
PowerShell 使用Regex 类来实现正则表达式,命名空间是 System.Text.RegularExpressions。在PowerShell 中可直接使用regex。
Regex 类的常用方法。
$p = New-Object System.Text.RegularExpressions.Regex('(?<=href\s*?=\s*?").*?(?=" *)')
$p = [regex]('(?<=href\s*?=\s*?").*?(?=" *)')
$html = @"
<nav class="navbar navbar-default">
......
</div>
"@
$r =[System.Text.RegularExpressions.Regex]::Matches($html, $p)
$r = [regex]::Matches($html, $p)
$r|ForEach-Object{$_.value}
str.replace(old, new[, count])re.sub(pattern, repl, string, count=0, flags=0)替换掉文件名在的/、\、(、)、" 符号为-。
import re p = re.compile(r'[/\\()"]') newFileName = re.sub(p, '_', oldFileName)
正则表达式都是第三方类(库,模块)提供支持,模式字符串的字面量书写会有细微差别,JS和Python 感觉最好;类库都提供了模式匹配、查找、替换的方法,JS主要是字符串提供方法。