js保留字符串中的关键字前后两个字符其他内容⽤省略号显⽰
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var str = "我国农业发展从追求农民产量转向⽣产发展与⽣态保护并重推动绿⾊⽣产⽅式落地⽣根河南省唐河县⿊龙镇⼤朱庄村,农民将⼩麦秸秆装车。唐河县形成“企业⽥间免费拾捡+我国农业发展从追求农民产量转向⽣产发展与⽣态保护并var newStr = ""; //字符串中截取后拼接成的新字符串
var keys = ["农民","免费","⿊龙","⽣"]; //关键字
var keysArr = []; //字符串中截取的关键字数组
for(var i=0;i<str.length;i++){
var indexArr = []; //关键字索引数组 -- 关键字所在字符串的索引
// 遍历关键字数组,分别获取他们在字符串中的位置(也就是索引)
for (var j=0;j<keys.length;j++) {
var index = str.indexOf(keys[j]);
if(index != -1){
indexArr.push(index); //不等于 -1 即存在该关键字,保存到关键字索引数组中
}
}
/
/ 如果关键字索引数组有值,则说明字符串中还存在关键字内容
if(indexArr.length > 0){
indexObj = getMin(indexArr); //调⽤获取最⼩值函数
var minEle = indexObj.minEle; //最⼩值(对应的是字符串的索引)
var minIndex = indexObj.minIndex; //最⼩值对应的索引(对应的是关键字数组的索引)
keysArr.push(str.substring(minEle - 2, minEle + keys[minIndex].length+2)); //截取所在索引的前两位,及后两位
str = str.slice(minEle + keys[minIndex].length);
i--;
}
}
newStr = "..."+keysArr.join("...")+"...";
console.log(newStr);
怎么截取一个字符串的后两位/**
* 获取数组中的最⼩值和对应的索引
* @param {Object} arr
*/
function getMin(arr){
var minEle = Math.max.apply(Math, arr); //默认给该数组的最⼤值
var minIndex = 0;
for (var i=0;i<arr.length;i++) {
//如果当前元素的值⽐前⾯保存的值⼩,就替换,否则不改变
if(arr[i] < minEle){
minEle = arr[i];
minIndex = i;
}
}
return {
minEle : minEle,
minIndex : minIndex
}
}
</script>
</body>
</html>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论