标签:style class blog code java http
concat:连接字符串
slice,substr,substring:获取子串
slice,substring和 substr(不建议使用,ECMAscript 因为没有对该方法进行标准化)都可返回字符串的指定部分。slice比substring要灵活一些,因为它允许使用负数作为参数,除了这一点其它都是一样的。
split:拆分字符串为数组
toLowerCase,toUpperCase:转换大小写
直接看例子:
var firstName = ‘Frank ‘; var secondName = ‘Dong‘; var name = firstName.concat(secondName); // 使用加号似乎更简洁 var name1 = firstName + secondName; alert(name); alert(name.slice(6)); // Dong alert(name.slice(6,7)); // D alert(name.substring(6)); // Dong alert(name.substring(6,7)); // D // 拆分为单词 alert(name.split(‘ ‘)); //Frank,Dong // 字符串转成字符数组的简便方式 alert(name.split(‘‘)); //F,r,a,n,k,D,o,n,g alert(name.toLowerCase()); // frank dong alert(name.toUpperCase()); // FRANK DONG
anchor,link,blink,big,small,bold,italics,strike,sub,sup:包装成特定的元素或增加特定的样式
fontcolor,fontsize:添加字体信息
fixed:转换成打印机格式
这个不多说了,只需要看一个例子就可以了:
var str = ‘Frank Dong!‘; alert(str.strike());
运行一下就可以看到包装后的html元素。
charAt:获取字符
indexOf,lastIndexOf:检索子串的位置
看个简单的例子:
var str = ‘Frank Dong!‘; alert(str.charAt(0)); alert(str.indexOf(‘Dong‘)); alert(str.lastIndexOf(‘n‘));
这里还有几个重量级的方法:
match,replace,search:检索和替换子串
这一组方法比较特别,这3个方法再加上前面的split方法是支持正则表达式的,功能十分强大,在总结它们之前先来看一下正则表达式对象。
// 字面量方式 /pattern/attributes // new方式 new RegExp(pattern, attributes); 参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。 参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。
经过这种方式,我们就定义了一个正则表达式对象,有了对象我们就可以使用它的方法了,该对象有下列方法:
var str = "Frank0 Dong0 Frank1 Dong1"; var patt = /Frank/g; var str2 = str.replace(patt,"FF"); alert(str2); patt = /Dong/g; patt.compile(patt); str2 = str.replace(patt,"DD"); alert(str2);
这个例子中就用到了支持正则表达式的string方法replace,这个方法会替换所有满足条件的文本。
var str = "Frank0 Dong0 Frank1 Dong1"; var patt = /Frank\d/g; // 总是从开始查找第一个匹配的文本,然后返回其索引值 var result = str.search(patt); alert(result); // 拆成数组 result = str.split(‘ ‘); for (var i = 0, len = result.length; i < len; i++) { alert(result[i]); } // 查找所有匹配的文本 result = str.match(patt); for (var i = 0, len = result.length; i < len; i++) { alert(result[i]); }
alert(/[abc]/.test(‘a‘)); //true
var str = "Frank0 Frank1"; var patt = /Frank\d/g; var result; while ((result = patt.exec(str)) != null) { alert(result); }
这里特别需要注意的是g属性,有没有这个属性对很多的方法结果都有影响,比如正则表达式对象的exec方法,字符串对象的match方法等,没有这个属性的时候总是匹配第一次出现的文本,只有加上了这个属性,它们才会正确的去匹配所有出现的文本,所以一般来说加上g属性好处还是很多的。
//获取字符数组 String.prototype.toCharArray = function() { return this.split(‘‘); } //获取N个相同的字符串 String.prototype.repeat = function(num) { var tmpArr = []; for(var i=0; i<num; i++) tmpArr.push(this); return tmpArr.join(‘‘); } //逆序 String.prototype.reverse = function() { return this.split(‘‘).reverse().join(‘‘); } //测试是否是数字 String.prototype.isNumeric = function() { var tmpFloat = parseFloat(this); if(isNaN(tmpFloat)) return false; var tmpLen = this.length - tmpFloat.toString().length; return tmpFloat + "0".repeat(tmpLen) == this; } //测试是否是整数 String.prototype.isInt = function() { if(this == "NaN") return false; return this == parseInt(this).toString(); } // 合并多个空白为一个空白 String.prototype.resetBlank = function() { return this.replace(/s+/g,‘ ‘); } // 除去左边空白 String.prototype.trimL = function() { return this.replace(/^s+/g,‘‘); } // 除去右边空白 String.prototype.trimR = function() { return this.replace(/s+$/g,‘‘); } // 除去两边空白 String.prototype.trim = function() { return this.replace(/(^s+)|(s+$)/g,‘‘); } // 保留数字 String.prototype.getNum = function() { return this.replace(/[^d]/g,‘‘); } // 保留字母 String.prototype.getEn = function() { return this.replace(/[^A-Za-z]/g,‘‘); } // 保留中文 String.prototype.getCn = function() { return this.replace(/[^u4e00-u9fa5uf900-ufa2d]/g,‘‘); } // 得到字节长度 String.prototype.getRealLength = function() { return this.replace(/[^x00-xff]/g,‘--‘).length; } // 从左截取指定长度的字串 String.prototype.left = function(n) { return this.slice(0,n); } // 从右截取指定长度的字串 String.prototype.right = function(n) { return this.slice(this.length-n); } // HTML编码 String.prototype.htmlEncode = function() { var re = this; var q1 = [/x26/g,/x3C/g,/x3E/g,/x20/g]; var q2 = [‘&‘,‘<‘,‘>‘,‘ ‘]; for(var i=0; i<q1.length; i++) re = re.replace(q1[i],q2[i]); return re; } // Unicode转化 String.prototype.ascW = function() { var strText = ‘‘; for (var i=0; i<this.length; i++) strText += ‘&#‘ + this.charCodeAt(i) + ‘;‘; return strText; }
经典,可以收藏了。
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配HTML标记的正则表达式:/< (.*)>.*|< (.*) />/ 匹配首尾空格的正则表达式:(^s*)|(s*$) 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
除了这里讨论的这些核心的对象外,JavaScript还提供了一些辅助的对象,提供数学运算的Math对象(正/余弦,正/余切,指/对数,随机数,取整等功能),处理日期的Date对象(创建日期并以各种格式输出),这些对象都很简单,就不多说了。
JavaScript大杂烩8 - 理解文本解析的"黄金搭档",布布扣,bubuko.com
JavaScript大杂烩8 - 理解文本解析的"黄金搭档"
标签:style class blog code java http
原文地址:http://www.cnblogs.com/dxy1982/p/3781675.html