大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
JavaScript通过RegExp类来支持正则表达式,举一个最简单的例子:
十多年的黄陂网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整黄陂建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“黄陂网站设计”,“黄陂网站推广”以来,每个客户项目都认真落实执行。
复制代码
代码如下:
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);
/*
@param str the string to calc length
@param autotrim auto trim blank char. default : false
*/
function getAbsLength(str, autotrim) {
if (typeof str === 'undefined') return 0;
if (str == null) return 0;
// trim
var reg_trim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
var reg_chinese_char = /[\u4e00-\u9fa5]/;
autotrim = !!autotrim;
str = autotrim ? (str + "").replace(reg_trim, "") : (str + "");
var orig_len = str.length;
var absLen = 0;
for (var i = 0; i orig_len; i++) {
if (reg_chinese_char.test(str.charAt(i))) {
// chinese, length=2
absLen += 2;
} else {
absLen += 1;
}
}
return absLen;
}
除了中文,其它都算是一个字符的。。
js正则表达式格式是 var reg = /这中间写匹配的格式/;
常用的匹配格式有:\s(空格)\d(数字)\w(字母数字下划线){n}(出现的数量)[ab](出现a或b)[0-9](字符集0到9)^(第一个位置)+(出现一次以上)?(出现一次或者不出现)
reg.test("字符串")匹配成功返回true 失败返回false
首先肯定的是JavaScript中是可以使用正则表达式的。
下面我就借鉴秒秒学上的内容,简单说下。
在没有了解正则表达式之前,是很难理解它的强大功能的,我们先来看一个在JavaScript中使用正则表达式的语句。
//创建正则表达式,这和声明字符串很相似,但hello不是放在双引号中,而是在双斜杠中’//’。
var myRE = /hello/;
示例中创建正则表达式的代码其实是简写,完整写法为:var myRE = new RegExp(“hello”);
/*
*使用正则表达式在字符串中查找信息。
*下面代码使用test方法匹配字符串,这里在myString中匹配myRE中的”hello”字符串,
*若myString中能匹配到test方法,则返回true,否则返回false。匹配过程是大小写敏
*感的。
*/
var myString = “Does this sentence have the word hello in it?”
if( myRE.test(myString) ) {
alert(“Yes”);
}
test方法只返回true和false,而使用search方法能返回”hello”在myString中第一次出现的下标。
介绍了JavaScript中使用正则表达式的用法后,下面我们来说下正则表达式本身。
在刚刚的示例中,我们用正则表达式匹配的是字符串hello。但很多时候需要匹配的字符串是比较复杂的,如电子邮箱的格式。这时我们就要使用由普通字符以及特殊字符组成的文字模式。特殊字符也许对不了解正则表达式的人来说就是一串乱七八糟的字符,但其实就是因为有了这些乱糟糟的字符,才能使正则表达式好些的强大。下面我们来了解下正则表达式中的特殊字符:
通过普通字符以及特殊字符可以组成复杂的正则表达式。如下是一个逐渐复杂的示例:
其实上面的正则表达式并不算复杂。很多常用的正则表达式可以在网上找到,不用我们自己编写,如:
匹配电子邮箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
匹配URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
复杂正则表达式的编写并不简单,题主只要先大概的了解即可,希望能帮助你入门,推荐你去一个不错的自学网站 秒秒学上过一遍基础知识。