String.method('deentityify', function() {
//字符映射表,它映射字符的名字到对应的字符
var entity = {
quot: '"',
lt: '<',
gt: '>'
};
//返回deentityify方法
return function() {
//这才是deentityify方法。它调用字符串的replace方法,
//查找'&'开头和';'结束的子字符串。如果这些字符可以在字符映射表中找到,
//那么就将该字符替换为映射表中的值,它用到了一个正则表达式(参见第七章)
return this.replace(/&([^&;]+);/g,
function(a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
);
};
} ());function deentityifyTest() {
return "< "> ".deentityify(); //输出<”>
}这里,生成了个替换字符串的函数
function(a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
但参数a,b 是什么,怎么就执行了
//字符映射表,它映射字符的名字到对应的字符
var entity = {
quot: '"',
lt: '<',
gt: '>'
};
//返回deentityify方法
return function() {
//这才是deentityify方法。它调用字符串的replace方法,
//查找'&'开头和';'结束的子字符串。如果这些字符可以在字符映射表中找到,
//那么就将该字符替换为映射表中的值,它用到了一个正则表达式(参见第七章)
return this.replace(/&([^&;]+);/g,
function(a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
);
};
} ());function deentityifyTest() {
return "< "> ".deentityify(); //输出<”>
}这里,生成了个替换字符串的函数
function(a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
但参数a,b 是什么,怎么就执行了
解决方案 »
- jQuery密码强度插件passwordStrength的实例演示
- 问1个moveTo函数的问题
- javascript中怎样与asp数组通讯?(100分)
- js的变量如何传到 c#中
- 自动填写文件控件的值?
- HTML5的audio和video的播放时“阻塞”和“恢复”牵涉到的属性和事件有哪些?
- JAVASCRIPT现在最新版本是不是1。4你们用的是哪个版本,最新版本功能增加了很多吗?
- 100分求onchange()写法:
- 怎么IE中打开外部程序?
- 求救!!! 怎么改变图片的连接??? 在线求答!!!!!
- javascript验证QQ号码
- javascript能做到关闭窗口的时候的提示框用div层来代替提
例子:
var str = '<div id="{wo}" >{ni}</div>';
str.replace(/\{([a-z]+)\}/ig, function(a, b, c, d) {
alert(a);
alert(b);
alert(c);
alert(d);
});
a:满足条件的字符串
b:第一个参数中匹配到一个括号正则的字符串,如a匹配到的为{wo},{ni},那么b为wo,ni
c:满足条件的字符串在原字符串中出现的位置
d:原字符串
function(a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
);参数a是正则表达式(/&([^&;]+);/g(匹配所有&开始和;结束的字符串)匹配到的内容,如:可匹配到&或者"等。
参数b是正则表达式(/&([^&;]+);/g中括号中匹配的内容。如:a=",则b=quot
这样,由
var entity = {
quot: '"',
lt: '<',
gt: '>'
};
得
r=entity["quot"]='"';
同理
r=entity["lt"]="<";
r=entity["gt"]=">";