Javascript与正则表达式个人总结与收录--实战字符串

  光说不练假把式,下面通过对字符串的常见操作实现对相关理论的简单回顾。

  声明字符串处理对象:

var stringUtil = new Object();

  1、将字符串首字母大写

  方法一、首字符匹配英文字母,则用其大写形式替换

1 function capitalize(str){
2 return str.replace(/^\w/, str.substr(0, 1).toUpperCase());
3 }

  方法二、

1 stringUtil.capitalize = function(str) {
2 return str.replace(/^\w/, function(s) {
3 return s.toUpperCase();
4 });
5 }

  2、计算字符串长度(汉字算两个字节)

1 stringUtil.lenReg = function(str) {
2 return str.replace(/[^\x00-\xff]/g, " ").length;
3 }
4  

  3、去除字符串中的空白 

代码
1 stringUtil.lTrim = function(str) {
2 /// <summary>去掉字符串左边的空格</summary>
3   return str.replace(/(^\s*)/g, "");
4 }
5
6 stringUtil.rTrim = function(str) {
7 /// <summary>去掉字符串右边的空格</summary>
8   return str.replace(/(\s*$)/g, "");
9 }
10
11 stringUtil.trim = function(str) {
12 /// <summary>去除字符串开头结尾的空白</summary>
13   return str.replace(/(^\s*)|(\s*$)/g, "");
14 }
15  

  4、去除字符串中的相同字符

1 stringUtil.trimSameChar = function(str) {
2 var re = /(.)(.*)\1/g;
3 while (str.match(re) != null) {
4 str = str.replace(re, "$1$2");
5 }
6 return str;
7 }

  5、去除字符串中的HTML标签

1 stringUtil.trimHTML = function() {
2 //(?:.|\s)表示匹配<后面的任何文本,然后跟着一个>,*?为惰性量词,表示零次或多次出现
3   var reTag = /<(?:.|\s)*?>/g;
4 return this.replace(reTag, "");
5 };
6  

  对比:通过普通方式和正则表达式取得URL中的参数值

  普通循环遍历处理:

代码
1 function getUrlParamValue(fieldName) {
2 /// <summary>取得网址中的参数,相当于.net的Request.QueryString方法,
         如果没有取到值,返回null</summary>

3   /// <param name="fieldName">查询的参数名</param>
4   var urlString = location.search;//假如是:default.aspx?id=1&page=1
5   if (urlString.length > 0) {
6 var paramsArr = urlString.split('?')[1].split('&');//{id=1} {page=1}
7   for (var i = 0; i < paramsArr.length; i++) {
8 var paramValue = paramsArr[i].split('=');
9 //如果与所需参数相同,则返回其参数值
10   if (paramValue[0].toUpperCase() == fieldName.toUpperCase()) {
11 return paramValue[1];
12 break;
13 }
14 }
15 return;
16 }
17 else {
18 return null;
19 }
20 }

  正则表达式处理: 

  分析:URL的参数可能有多个,所以需要的参数值有可能出现在?后面,也有可能出现在&后面,故此时需要同

时匹配二者,而此参数的后面还可能有零个或多个参数,所以要通过[^\&]*进行匹配,最后为了忽略大小写可以在

构造正则表达式的时加入i 参数。

代码
1 function getUrlParamValueByReg(fieldName) {
2 var sValue = location.search.match(new RegExp("[\?|\&]" + fieldName
+ "=([^&]*)", "i"));
3 return sValue ? sValue.toString().split(",")[1] : null;
4 }
5  

  通过比较,不难看出正则表达式的强大啊。。。


作者:Rocky翔
出处:http://www.cnblogs.com/RockyMyx/
本文版权归作者和博客园共有,欢迎转载,但请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2010-04-08 19:20  RockyXiang  阅读(485)  评论(3编辑  收藏  举报