Search
var str = 'abcdef';
console.log(str.search('bc'));// 1
console.log(str.search('g'));// -1
可以配合正则使用
var str = 'abcdef';
console.log(str.search('c'));// 2
console.log(str.search(/C/i));// 找到返回位置2
var str = 'abcd 443 gdfg 55';
var reg = /\d/;
console.log( str.search(reg) );// 5,第一个数字4出现在第5个位置
检测浏览器
var str = window.navigator.userAgent;
if(str.search(/firefox/i) != -1) {// 找到了
console.log('火狐');
}
else if(str.search(/chrome/i) != -1) {
console.log('Chrome');
}
else {
console.log('不知道');
}
Substring
var str = 'abcdef';
console.log(str.substring(1, 4));// bcd
console.log(str.substring(1));// bcdef
CharAt
var str = 'abcdef';
console.log(str.charAt(0));
Split
var str = 'a-b-c-d-e-f';
console.log(str.split('-'));// ["a", "b", "c", "d", "e", "f"]
str.match
挑出字符串中的数字
var str = "12,87 76 -ddf e ef 89 ff76 9";
// 普通版
var arr = [];
var temp = '';
for(var i=0; i= '0' && str.charAt(i) <= '9') {
temp += str.charAt(i);
}
else{
if(temp) {
arr.push(temp);
temp = "";
}
}
}
// 最后一个是数字,但不会走for中的else了,这里再判断一次
if(temp) {
arr.push(temp);
temp = "";
}
console.log(arr);// ["12", "87", "76", "89", "76", "9"]
正则版
var reg = /\d+/g;
console.log(str.match(reg));
再举个例子
var str = 'sdfs 43 fdsf 454 66gg dff 99';
var reg = /\d/;
console.log( str.match(reg) );// ["4", index: 5, input: "sdfs 43 fdsf 454 66gg dff 99"]
var reg = /\d/g;
console.log( str.match(reg) );// ["4", "3", "4", "5", "4", "6", "6", "9", "9"]
var reg = /\d+/g;
console.log( str.match(reg) );// ["43", "454", "66", "99"]
RegExp的两种写法
var str = 'Abcdef';
// JS风格
var reg = new RegExp('a', 'i');
console.log(reg.test(str));// true
// perl风格
var reg2 = /a/i;
console.log(reg2.test(str));
Replace
var str = "abadAf";
var newStr = str.replace("a", "T");
console.log(newStr);// Tbadef
var newStr = str.replace(/a/gi, "T");
console.log(newStr);// TbTdTf
敏感词过滤
转换前
转换后
常用简写
var str = '1a2 abc ee 1b2 1c2';
// var reg = /1a2|1b2|1c2/;
var reg = /1[abc]2/g;
console.log(str.match(reg));// ["1a2", "1b2", "1c2"]
// [a,b]:a或者,或则b
// [12 34]:1或者2或者空格或者3或者4,只是指单个字符
// [0-9]
// [a-z]
// [0-9a-z]
// \d == [0-9]
//
// [^a]:除了a以外的所有东西都可以
// [^0-9a-z]:除了0-9和a-z都可以
// \d:digital
// \w:[a-z0-9_]数字字母和下划线
var str = ' fd dfsf d d ff ';
var newStr = str.replace(/\s/g, "");
console.log(newStr);
// -D:[^0-9]非数字
// -W:[^a-z0-9_]
// \S:除了空格
去除HTML标签
量词
// {n,m}:最少出现n次,最多m次
// {n}:最多不限
// {,n}:最少不限
// {n}:正好n次
// + >> {1,}:最少一次
// * >> {0,}:零到任意次
// ? >> {0,1}:零次或1次
QQ号
// QQ:最少5位,最多11位,第一位不是0
// [1-9]\d{4,10}
var str = "我的QQ是:2482343438,你的是9954334吗?";
var reg = /[1-9]\d{4,10}/g;// [4,10]逗号后面不要有空格,例如[4, 10]
console.log(str.match(reg));// ["2482343438", "9954334"]
校验邮箱
// [email protected]
// 一串字母数字下划线@一串字母数字.2到4位的字母
// var reg = /\w+@[a-z0-9]+\.[a-z]{2,4}/;// 一部分符合即可
var reg = /\w+@[a-z0-9]+\.[a-z]{2,4}/;// 从行首到行尾完全符合
var str = "[email protected]";
console.log(reg.test(str));
console.log(str.match(reg));// ["[email protected]", index: 0, input: "[email protected]"]
去除收尾空格
var name = " Aaa Yang ";
var reg = /^\s+|\s+$/g;// 全局的行首或行尾的空格,中间的不算
var newName = name.replace(reg, "");
console.log(newName);
检测中文
// [\u4e00-\u9fa5],汉字Utf8编码的范围
var reg = /[\u4e00-\u9fa5]/;
var str = 'abfdfdf 34 34 +== 45';
console.log(reg.test(str));// false,没有中文
var str = "中fdsf";
console.log(reg.test(str));// true,有中文
getByClass
function getByClass(oParent, sClass) {
var aEle = oParent.getElementsByTagName("*");
var aResult = [];
var reg = new RegExp('\\b'+sClass+'\\b', 'i');// \b是单词边界
for(var i=0; i
单词边界
var reg = new RegExp('\\bAaayang\\b');// \b代表必须是单词边界,空格之类的
var reg = /\bAaayang\b/;
console.log(reg.test('my name is Aaayangs'));// false