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/
本文版权归作者和博客园共有,欢迎转载,但请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/RockyMyx/
本文版权归作者和博客园共有,欢迎转载,但请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。