JavaScript中的正则替换
String.replace(regexp, replaceText); 这是String类中的replace方法原型
replace方法接受两个参数:
regexp: 正则表达式, 用来在字符串中搜索的规则.
replaceText: 用来替换字符串中匹配正则表达式的子串的字符串
在JavaScript中, 支持正则替换, 正则替换的规则如下:
$$: 原意打印一个$符号
$&: 与规则匹配的整个子串
$`(大键盘1旁边的键): 整个字符串中, 与规则匹配的子串之前的部分
$'(单引号): 整个字符串中, 与规则匹配的子串之后的部分
$n: $1, $2等从1-9的数值, 代表正则匹配得到的第n个子组的匹配子串
$nn: 第01-99个子组的匹配子串.
以字符串"abcdefg"使用正则表达式/(?:(bc)(de)(f))/进行正则替换为例(?:)表示是非捕获子组, 属于正则表达式范畴, 这里不做讨论
则有:
$&代表bcdef
$`代表a
$'代表g
$1代表bc
$2代表de
$3代表f
下面是一个比较完整的例子, 在例子中为了方便操作, 使用了jQuery, 可以到jQuery官方网站下载
http://jquery.com/
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Javascript练习-2-正则表达式</title>
<mce:script type="text/javascript" src="scripts/jquery-1.3.2.js" mce_src="scripts/jquery-1.3.2.js"></mce:script>
<mce:script type="text/javascript"><!--
$(function() {
var body = $('body');
function append(msg) {
return body.append($('<div>').text(msg));
}
function appendHtml(msg) {
return body.append($('<div>').html(msg));
}
function appendHr() {
return body.append($('<hr>'));
}
var re = /(https?):\/\/(\w+(?:\.\w+){2,})\/\?((\w+)=(\w+))/;
appendHtml("[prefix]http://www.google.com/?user=selfimpr[suffix].replace(re4, " +
"" +
"\"{" +
"url: '$&', " +
"prefix: '$`', " +
"suffix: '$'', " +
"protocal: '$1', " +
"server: '$2', " +
"queryString: '$3', " +
"argName: '$4', " +
"argValue: '$5'" +
"}\")");
appendHtml('<font color="red">' + "[prefi
相关文档:
原文:《Speeding up JavaScript: Working with the DOM》
作者: KeeKim Heng, Google Web Developer
在我们开发互联网富应用(RIA)时,我们经常写一些javascript脚本来修改或者增加页面元素,这些工作最终是DOM——或者说文档对象模型——来完成的,而我们的实现方式会影响到应用的响应速度。
DO ......
reg = /^((((((0[48])|([13579][26])|([2468][048]))00)|([0-9][0-9]((0[48])|([13579][26])|([2468][048]))))-02-29)|(((000[1-9])|(00[1-9][0-9])|(0[1-9][0-9][0-9])|([1-9][0-9][0-9][0-9]))-((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30))|(((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-8]))))))$/i; ......
求 555.555的四舍五入保留两位小数
使用Math.round 怎么都算不对,结果都是555.55 ,貌似是因为java计算浮点数时会莫名其妙在结尾跟上一串数字 比如555.55500000003
无奈只能写这个方法
function round(a,b){
var s=a.toString().indexOf(".");
a0=a.toString().substr(0,s+b+1);
a1=Math.round(a.toString().sub ......