一、js截取字符串
var str = '学生:张三';
1.用split()
split() 方法用于把一个字符串分割成字符串数组
这个如果特殊字符有多个,会都截取,分成n份(n代表:有多少特殊字符就是多少)
var a = str.split(':');
console.log(a[0],a[1]) //a[0]是截取的前面的数据,a[1]是截取的后面的数据
2.用substring()
substring() 方法用于提取字符串中介于两个指定下标之间的字符
这个用于截取第一个特殊字符前后的内容。
也可以用于截取最后一个特殊字符前后的内容,只需要把indexOf换成lastIndexOf
var a = str.indexOf(':');
var b = str.substring(0,a);
var c = str.substring(a,str.length);
var d = str.substring(a+1,str.length);
console.log(a,b) // b: 学生, c: :张三, d: 张三
3.封装方法
/*
*obj 传递的字符串
*assignmentCharacter 传递的指定特殊符号
*lastIndexOf 最后一个特殊字符
*/
function getCaption(obj, assignmentCharacter) {
let index = obj.lastIndexOf(assignmentCharacter)
let res = obj.substring(index + 1, obj.length)
return res
}
二、js去除字符串空格
var str=" 5 zhnag 6 22"
使用js去除字符串内所带有空格,有以下三种方法:
( 1 ) replace正则匹配方法
去除字符串内所有的空格:str = str.replace(/\s*/g,"");
去除字符串内两头的空格:str = str.replace(/^\s*|\s*$/g,"");
去除字符串内左侧的空格:str = str.replace(/^\s*/,"");
去除字符串内右侧的空格:str = str.replace(/(\s*$)/g,"");
示例:
var str = " 5 zhnag 6 22";
var str_1 = str.replace(/\s*/g,"");
console.log(str_1); //5zhnag622//去除所有空格
var str = " 6 6 ";
var str_1 = str.replace(/^\s*|\s*$/g,"");
console.log(str_1); //6 6//输出左右侧均无空格
var str = " 6 6 ";
var str_1 = str.replace(/^\s*/,"");
console.log(str_1); //6 6 //输出右侧有空格左侧无空格
var str = " 6 6 ";
var str_1 = str.replace(/(\s*$)/g,"");
console.log(str_1); // 6 6//输出左侧有空格右侧无空格
( 2 ) str.trim()方法
trim()方法是用来删除字符串两端的空白字符并返回,trim方法并不影响原来的字符串本身,它返回的是一个新的字符串。
缺陷:只能去除字符串两端的空格,不能去除中间的空格
示例:
var str = " 6 6 ";
var str_1 = str.trim();
console.log(str_1); //6 6//输出左右侧均无空格
//单独去除左侧空格则使用 str.trimLeft(); //var str_1 = str.trimLeft();
//单独去除右侧空格则使用 str.trimRight();//var str_1 = str.trimRight();
( 3 ) JQ方法:$.trim(str)方法
$.trim() 函数用于去除字符串两端的空白字符。
注意:$.trim()函数会移除字符串开始和末尾处的所有换行符,空格(包括连续的空格)和制表符。如果这些空白字符在字符串中间时,它们将被保留,不会被移除。
示例:
var str = " 6 6 ";
var str_1 = $.trim(str);
console.log(str_1); //6 6//输出左右侧均无空格
三、js进行根据指定下标获取数组相同下标的值(非常常用)
/*根据指定下标获取数组相同下表的值方法
*index 传递指定下标
*arrays 传递数组(可多个)
*resVal 返回格式(字符串格式)
*该方法暂不支持ie浏览器
*/
// function getValueByIndex(index, ...arrays) {
// var resVal = $.map(arrays, function(arr) {
// return arr[index];
// });
// return resVal.join('');
// }
/*根据指定下标获取数组相同下标的值方法
*该方法暂支持ie浏览器
*/
function getValueByIndex(index) {
// 将除第一个参数index以外的其他参数放入一个新数组中
var arrays = Array.prototype.slice.call(arguments, 1);
// 将所有数组中在指定索引位置上的元素放入一个新数组中
var result = arrays.map(function(array) {
return array[index];
});
return result.join('');
}
四、js获取字符串或数组是否包含某个属性,两种方法
1.使用includes方法,ie浏览器不支持
if (tophonordetail.includes(".")) { // 判断是否包含句号
tophonordetail = tophonordetail.replace("......", ""); // 去除逗号
}
2.使用indexof方法,ie浏览器支持
if (tophonordetail.indexOf(".") !==-1) { // 判断是否包含句号
tophonordetail = tophonordetail.replace("......", ""); // 去除逗号
}
五、jq获取多个p标签嵌套strong标签后的节点元素信息
使用nextSibling方法和charAt方法
$(".newsData_main .table_list p").find('strong').each(function() {
var nextNode = this.nextSibling // 获取 strong 标签的下一个节点
var textContent=''
if (nextNode) {//如果扎到文本节点 输出文本节点内容
textContent=nextNode.textContent.trim()
if (textContent.charAt(0) === ',' || textContent.charAt(0) === ':' || textContent.charAt(0) ===
'。') { // 判断最后一个字符是否为逗号
$(this).css({
"font-size": "24px",
"display": "initial",
"text-align": "center",
}); // 设置年度人物单独样式
}
}
})