html前台截取/以后的字段,JS截取指定字符前/中/后字符的方法

be61f86508ec3bfbcecf52c15a61c8f1.png

字符串操作大家应该会经常遇到,今天试着写了一个通用的字符串匹配方法,基本能用,记这里备忘。

使用场景

截取指定字符串前/中/后的字符,可匹配多个。

源码

String.prototype.stringMatch = function(templ, key,innerReg) {

var str = this,

keys = [],

res = {},

regs = {

divide: /\$\{([^\}]*)\}/g,

sensitive: /\?|\=|\|\^|\$|\*|\(|\)|\||\{|\}|\[|\]/g,

blank: /\r|\n|\t/g

},

nearby = templ.replace(regs.divide, function($0, $1) {

keys.push($1)

return ','

}).split(','),

trimSens = function(s) {

return s.replace(regs.sensitive, function($0) {

return '\\' + $0;

})

};

for (var i = 0; i < keys.length; i++) {

var reg = new RegExp("(?<=" + trimSens(nearby[i] || '') + ")" + (innerReg || ".*") + "(?=" + trimSens(nearby[i + 1] || '') + ")", "mg"),

val = str.replace(regs.blank, '').match(reg);

if (val) {

res[keys[i]] = val[0];

}

}

return key ? res[key] : res;

};

//测试:

var str="字符串操作大家应该会经常遇到",

teml="字符串操作${key1}应该会${key2}遇到",

res=str.stringMatch(teml);

document.write(JSON.stringify(res)); // => {key1:"大家",key2:"经常"}

使用方法场景一:路由参数获取var str="https://denghao.me/a/hello.html?v=100",

teml="https://denghao.me/a/${name}.html?v=${version}",

res1=str.stringMatch(teml);

console.log(res1); // => {name:"hello",version:"100"}场景二:网页源码解析var str=`

微信小程序“拍照识图”上线

... ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值