JavaScript正则表达式cookie.replace(/^\s+|\s+$/g, '');什么意思?
整体为如果cookie以一个或多个空格开始,替换全部空格为空,或者,如果cookie以一个或多个空格结束,替换全部空格为空。
符号含义:
\s: space, 空格
+: 一个或多个
^: 开始,^\s,以空格开始
$: 结束,\s$,以空格结束
|:或者
/g:global, 全局
replace() 替换
扩展资料:
基本特点
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
是一种解释性脚本语言(代码不进行预编译)。
主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。、
可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。
JavaScript脚本语言具有以下特点:
(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。
(5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用。
参考资料来源:百度百科--javascript
参考资料来源:百度百科--正则表达式
JavaScript 实现基础 正则表达式
JavaScript通过RegExp类来支持正则表达式,举一个最简单的例子:
复制代码
代码如下:
var
regApple
=
new
RegExp("apple");
它可以匹配一个字符串中出现的第一个"apple"字符串,并且对大小写敏感。在构造方法中加入第二个参数"g"则代表的搜索出字符串中所有的
"apple",这里"g"代表"global"。如果第二个参数为"i",则代表着case-insensitive,匹配过程中将不考虑字母的大小写。将上述两者综合起来,可以搜索出所有"apple"字符串,并且不考虑大小写问题。
复制代码
代码如下:
var
regApple
=
new
RegExp("apple",
"gi");
正则表达式有着并不唯一的表示方法,使用Perl语言中的语法,可以将上述表达式表示为:
复制代码
代码如下:
var
regApple
=
/apple/gi;
创建了一个RegExp对象后,RegExp的方法可以构造出不同的匹配方式,因为正则表达式是对字符串进行的操作,所以String的一些方法在构造正则表达式的过程中也扮演着重要角色。
RegExp对象的方法
复制代码
代码如下:
var
sampleString
=
"Greenapple";
var
regApple
=
/apple/;
alert(regApple.test(sampleString));
上面代码输出的结果是"true",因为sampleString中包含了需要匹配的字符串"apple",这是最简单的检测方式。有时,我们需要知道匹配的详细结果,例如:
复制代码
代码如下:
var
sampleString
=
"green
apples,
red
apples";
var
regApple
=
/apple/g;
var
arr
=
regApple.exec(sampleString);
通过使用exec()方法,返回的arr是关于匹配结果的一个数组,包括每一个匹配的值及其所在的段,例如上例中是"green
apples"还是"red
apples"。match()方法有着和exec()相同的功能,只是表达方式不同:
复制代码
代码如下:
var
sampleString
=
"green
apples,
red
apples";
var
regApple
=
/apple/g;
var
arr
=
sampleString.match(regApple);
search()方法和indexOf()比较类似,返回第一个匹配的字符串所在的位置:
复制代码
代码如下:
var
sampleString
=
"green
apples,
red
apples";
var
regApple
=
/apple/gi;
alert(sampleString.search(regApple));
//输出"6"
String的方法
String的replace()方法可以将指定的字符串替换为另一个字符串:
复制代码
代码如下:
var
sampleString
=
"There
is
a
green
apple.";
alert(sampleString.replace("green",
"red"));
//输出"There
is
a
red
apple."
将replace()的第一个参数替换为一个正则表达式,可以达到同样的效果:
复制代码
代码如下:
var
sampleString
=
"There
is
a
green
apple.";
var
regApple
=
/apple/;
alert(sampleString.replace(regApple,
"red"));
//输出"There
is
a
red
apple."
replace()的第二个参数可以替换为一个function(),该function()接受一个匹配字符串作为参数,返回一个替换字符串。(存在疑问)
使用正则表达式可以实现String的split()方法相同的功能。
复制代码
代码如下:
var
fruit
=
"apple,pear,lemon";
var
arr
=
fruit.split(",");
使用正则表达式:
复制代码
代码如下:
var
fruit
=
"apple,pear,lemon";
var
reg
=
/\,/;
var
arr
=
fruit.split(reg);
javascript 正则 判断是否是数字的脚本
if (/^(0|[1-9]\d*)(\.\d+)?$/.test(target)) {
// this is a number
}
这是一个较为严格的匹配,可以匹配整数和小数,且数字不能以多个0开头。
JavaScript脚本用正则表达式/1.*?3/在“123 143”中匹配
/1[0-9]3/g
g表示全局
一般来说的正则,只匹配到一次就默认停止了。
JavaScript-正则表达式练习
登陆页面 login.html
!doctype html
html lang="en"
head
meta charset="UTF-8"
titlelogin/title
link rel="stylesheet" href="all.css"
script src="validate.js"/script
script src="login.js"/script
/head
body
div class="x-stage"
form action="#" class="x-form"
div class="x-field"label for="e-username" class="x-label"用户名:/labelinput id="e-username" name = "username" type="text" class="x-input"//div
div class="x-field"label for="e-pwd" class="x-label"密码:/labelinput id="e-pwd" name="pwd" type="password" class="x-input"//div
input type="button" name="login" value="登陆"/
input type="button" name="regist" value="注册"/
/form
/div
/body
/html
注册页面 regist.html
!doctype html
html lang="en"
head
meta charset="UTF-8"
titleregist/title
link rel="stylesheet" href="all.css"
script src="validate.js"/script
script src="regist.js"/script
/head
body
div class="x-stage"
form action="#" class="x-form"
div class="x-field"font class="x-requirement"*/fontlabel for="e-username" class="x-label"用户名:/labelinput id="e-username" name = "username" type="text" class="x-input"/div class="x-prompt"2-10位字符 数字和字母均可/div/div
div class="x-field"font class="x-requirement"*/fontlabel for="e-pwd" class="x-label"密码:/labelinput id="e-pwd" name="pwd" type="password" class="x-input"/div class="x-prompt"6-20位 可以是数字字母或下划线/div/div
div class="x-field"font class="x-requirement"*/fontlabel for="e-c-pwd" class="x-label"确认密码:/labelinput id="e-c-pwd" name="cPwd" type="password" class="x-input"/div class="x-prompt"/div/div
div class="x-field"font class="x-requirement"*/fontlabel for="e-mail" class="x-label"电子邮箱:/labelinput id="e-mail" name="mail" type="text" class="x-input"/div class="x-prompt"用于验证和找回密码/div/div
div class="x-field"font class="x-requirement"*/fontlabel for="e-sex-man" class="x-label"性别:/labelinput id="e-sex-man" name="sex" type="radio" class="x-input"男/inputinput id="e-sex-woman" name="sex" type="radio" class="x-input"女/inputdiv class="x-prompt"/div/div
input type="button" name="regist" value="注册"/
/form
/div
/body
/html
登陆脚本 login.js
window.onload = function(){
var form = document.forms[0];
var lastWorkUrl = '';
form.regist.onclick = function(){
form.action = 'regist.html';
form.submit();
};
form.login.onclick = function(){
if(!validate.checkLogin(form.username.value,form.pwd.value))
return false;
form.action = lastWorkUrl;
form.submit();
};
}
注册脚本 regist.js
window.onload = function(){
var form = document.forms[0];
var lastWorkUrl = '';
form.regist.onclick = function(){
if( !validate.checkUserName(form.username.value)
|| !validate.checkPwd(form.pwd.value)
|| !validate.checkConfirmPwd(form.pwd.value,form.cPwd.value)
|| !validate.checkMail(form.mail.value))
return false;
form.action = lastWorkUrl;
form.submit();
};
}
验证脚本 validate.js
var validate = {
checkNull:function(value){
if(!value)
return alert('不能为空!'),false;
return true;
},
checkLogin:function(name,pwd){
if(!name || !pwd)
return alert('输入不正确!'),false;
return true;
},
checkUserName:function(value){
if(!this.checkNull(value))
return false;
if(!/^[A-Za-z0-9]{2,10}$/.test(value))
return alert('2-10位字符 数字字母均可!'),false;
return true;
},
checkPwd:function(value){
if(!this.checkNull(value))
return false;
if(!/^\w{6,20}$/.test(value))
return alert('6-20位 可以是数字字母或下划线!'),false;
return true;
},
checkConfirmPwd:function(pwd,cpwd){
if(pwd pwd == cpwd this.checkPwd(pwd) this.checkPwd(cpwd))
return true;
return alert('确认密码错误!'),false;
},
checkMail:function(value){
if(!this.checkNull(value))
return false;
if(!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value))
return alert('邮箱格式错误!'),false;
return true;
}
};
样式表 all.css
.x-stage{
width:400px;
margin:100px auto;
}
.x-form{
}
.x-field{
margin-bottom: 5px;
font-size: 12px;
}
.x-label{
font-weight: bold;
margin-right: 5px;
width: 60px;
display: inline-block;
vertical-align: middle;
}
.x-input{
outline:none;
vertical-align: middle;
}
.x-prompt{
color : red;
font-size: 12px;
margin: 5px 0 5px 70px;
}
.x-requirement{
color : red;
}