问题一:
function trim(s) {
var m=s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
return (m==null) ? "" : m[1];
}
不知道这一句是什么意思:var m=s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
问题二:
function callback(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
var data=xmlHttp.responseText;
var pNode=document.getElementById("p");
pNode.innerHTML=data;
} } }
也不知道这两句是什么意思:if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
}}
var m=s.match(/^\s*(\S+(\s+\S+)*)\s*$/);是正则表达式
^表示以后面的字符开头
\s表示空白字符
\S表示非空白字符
$表示以前面的字符结尾
所以这个正则表达式的意思是以空白字符开头结尾的字符串,且中间必须有非空字符
readyState有四种值
1 = loading
2 = loaded
3 = interactive
4 = complete
而status表示html状态信息
200表示加载成功
另外如404表示找不到文件、500表示服务器内部错误
[code="java"]/^\s*(\S+(\s+\S+)*)\s*$/[/code]
这个正则很有意思哦 按照函数名的意思来说应该就是去除前后空白字符
\s 用于匹配单个空格符,包括tab键和换行符;
\S 正好相反 用于匹配除单个空格符之外的所有字符;
match 函数 返回正则匹配的结果 是一个数组
像这样的正则如果符合 比如 '空aa空aa空'
就返回
[0]='空aa空aa空' --也就是原字符串
[1]='aa空aa' --第一个左括号到和第一个左括号匹配括号之间的文字
[2]='空aa' --第二个左括号到和第二个左括号匹配括号之间的文字
当然 不匹配的返回一个null 起始可以看成一个空数组
但是一般不用这样的去空函数
我也没见过 挺搞的 作者 分析也有限 呵呵