JavaScriptRegularExpression 转义与替换 需要注意的细节
2008-05-10 12:26
686 查看
/**
* 替换所有字符串
* @param 要替换的字符串
* @param 要被替换的目标字符串
* @param 替换为新的字符串
* @param 是否互略大小写 默认互略
* @return 替换完成后的字符串
*/
function replaceAll(sourceStr, oldStr, newStr, capSens) {
var tem = "ig";
if (capSens != undefined) {
//大小写敏感 tem = "g";
}
var reg = new RegExp(oldStr, tem);
var valueNew = sourceStr.replace(reg, newStr);
return (valueNew);
}
设参与替换的正则表达式为:
var express = //d{4}-//d{2}-//d{2} //d{2}://d{2}://d{2
}
var oldChar="////
";
var newChar="////";
var capSens="true";
var replaceResult = replaceAll(express, oldChar, newStr, capSens);
//replaceResult = '////d{4}-////d{2}-////d{2} ////d{2}:////d{2}:////d{2}';
在此我们可以把转义完成的表达式存储到DB中
当我们在某个表单中想要使用DB中的表达式时我们不需要进行转义
设 已经从DB中取出表达式
var expression = '////d{4}-////d{2}-////d{2} ////d{2}:////d{2}:////d{2}';
var replaceResult = replaceAll(expression,'////','//',true);
var regExp = new RegExp(replaceResult);
var date = '2008-10-20 20:33:33';
var result = regExp.exec(date);
if(result != null) {
alert('Compare Successful!!');
}
·总结:
表达式的转义主要是以'/' 替换为 '/', 正常情况下表达式是以//d{2
,} 等等 但当我们存储到DB时如果不替换,在取出数据并使用时就会出现d{2,} 而我们的转义字符就会被互略(或其它原因)
·主要思路:
把表达式转义字符替换 存储到数据库,在使用时只需再一次把//字符替换 构建RegExp进行使用
平时用不到这么麻烦,但特殊需求时有必要使用.
·需要注意的细节:
在替换转义字符 '//' 时 要清楚记得 //本身也是在转义 真实的表达式是 /d{2, } 类似这样子
我们replaceAll('//d','//','//') 将会得到 ////d 而不是//d
如果要得到//d 就应 replaceAll('//d','////','//')
* 替换所有字符串
* @param 要替换的字符串
* @param 要被替换的目标字符串
* @param 替换为新的字符串
* @param 是否互略大小写 默认互略
* @return 替换完成后的字符串
*/
function replaceAll(sourceStr, oldStr, newStr, capSens) {
var tem = "ig";
if (capSens != undefined) {
//大小写敏感 tem = "g";
}
var reg = new RegExp(oldStr, tem);
var valueNew = sourceStr.replace(reg, newStr);
return (valueNew);
}
设参与替换的正则表达式为:
var express = //d{4}-//d{2}-//d{2} //d{2}://d{2}://d{2
}
var oldChar="////
";
var newChar="////";
var capSens="true";
var replaceResult = replaceAll(express, oldChar, newStr, capSens);
//replaceResult = '////d{4}-////d{2}-////d{2} ////d{2}:////d{2}:////d{2}';
在此我们可以把转义完成的表达式存储到DB中
当我们在某个表单中想要使用DB中的表达式时我们不需要进行转义
设 已经从DB中取出表达式
var expression = '////d{4}-////d{2}-////d{2} ////d{2}:////d{2}:////d{2}';
var replaceResult = replaceAll(expression,'////','//',true);
var regExp = new RegExp(replaceResult);
var date = '2008-10-20 20:33:33';
var result = regExp.exec(date);
if(result != null) {
alert('Compare Successful!!');
}
·总结:
表达式的转义主要是以'/' 替换为 '/', 正常情况下表达式是以//d{2
,} 等等 但当我们存储到DB时如果不替换,在取出数据并使用时就会出现d{2,} 而我们的转义字符就会被互略(或其它原因)
·主要思路:
把表达式转义字符替换 存储到数据库,在使用时只需再一次把//字符替换 构建RegExp进行使用
平时用不到这么麻烦,但特殊需求时有必要使用.
·需要注意的细节:
在替换转义字符 '//' 时 要清楚记得 //本身也是在转义 真实的表达式是 /d{2, } 类似这样子
我们replaceAll('//d','//','//') 将会得到 ////d 而不是//d
如果要得到//d 就应 replaceAll('//d','////','//')
相关文章推荐
- javascript代码编写需要注意的7个小细节小结
- 当javaScript从入门到提高前需要注意的细节:闭包部分
- Javascript - 一些需要注意的细节
- javascript代码编写需要注意的7个小细节小结
- 当javaScript从入门到提高前需要注意的细节:对象部分
- 当javaScript从入门到提高前需要注意的细节:闭包部分
- javaScript数据类型和变量需要注意的几个细节
- 当javaScript从入门到提高前需要注意的细节:对象部分
- JavaScript使用需要注意的细节
- 当javaScript从入门到提高前需要注意的细节:变量部分
- javaScript从入门到提高前需要注意的细节:变量部分
- Javascript中特殊字符转义需要注意的一个小问题
- Javascript 一些需要注意的细节(必看篇)
- 当javaScript从入门到提高前需要注意的细节:函数部分
- 当javaScript从入门到提高前需要注意的细节:函数部分
- 当javaScript从入门到提高前需要注意的细节:变量部分
- Javascript 需要注意的细节
- JavaScript使用需要注意的细节
- 【当javaScript从入门到提高前需要注意的细节:变量部分】 的总结
- 当javaScript从入门到提高前需要注意的细节:函数部分