标签:style blog http io color ar 使用 java sp
2、当您检索某个文本时,能够使用一种模式来描写叙述要检索的内容。RegExp 就是这样的模式。
3、简单的模式能够是一个单独的字符。
更复杂的模式包含了很多其它的字符,并可用于解析、格式检查、替换等等。
您能够规定字符串中的检索位置,以及要检索的字符类型,等等。
var test = new RegExp("e")
a、直接量语法
/pattern/attributes
b、创建RegExp对象语法
new RegExp(pattern,attributes);
參数 pattern 是一个字符串,指定了正則表達式的模式或其它正則表達式。
參数 attributes 是一个可选的字符串,包括属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大写和小写的匹配和多行匹配。
一个新的 RegExp 对象,具有指定的模式和标志。假设參数 pattern 是正則表達式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 同样的模式和标志创建一个新的 RegExp 对象。
假设不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,仅仅是当 pattern 是正則表達式时,它仅仅返回 pattern,而不再创建一个新的 RegExp 对象。
修饰符 | 描写叙述 |
---|---|
i | 运行对大写和小写不敏感的匹配。 |
g | 运行全局匹配(查找全部匹配而非在找到第一个匹配后停止)。 |
m | 运行多行匹配。 |
方括号用于查找某个范围内的字符:
表达式 | 描写叙述 |
---|---|
[abc] | 查找方括号之间的不论什么字符。 |
[^abc] | 查找不论什么不在方括号之间的字符。 |
[0-9] | 查找不论什么从 0 至 9 的数字。 |
[a-z] | 查找不论什么从小写 a 到小写 z 的字符。 |
[A-Z] | 查找不论什么从大写 A 到大写 Z 的字符。 |
[A-z] | 查找不论什么从大写 A 到小写 z 的字符。 |
[adgk] | 查找给定集合内的不论什么字符。 |
[^adgk] | 查找给定集合外的不论什么字符。 |
(red|blue|green) | 查找不论什么指定的选项。 |
元字符(Metacharacter)是拥有特殊含义的字符:
元字符 | 描写叙述 |
---|---|
. | 查找单个字符,除了换行和行结束符。 |
\w | 查找单词字符。 |
\W | 查找非单词字符。 |
\d | 查找数字。 |
\D | 查找非数字字符。 |
\s | 查找空白字符。 |
\S | 查找非空白字符。 |
\b | 匹配单词边界。 |
\B | 匹配非单词边界。 |
\0 | 查找 NUL 字符。 |
\n | 查找换行符。 |
\f | 查找换页符。 |
\r | 查找回车符。 |
\t | 查找制表符。 |
\v | 查找垂直制表符。 |
\xxx | 查找以八进制数 xxx 规定的字符。 |
\xdd | 查找以十六进制数 dd 规定的字符。 |
\uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符。 |
量词 | 描写叙述 |
---|---|
n+ | 匹配不论什么包括至少一个 n 的字符串。 |
n* | 匹配不论什么包括零个或多个 n 的字符串。 |
n? | 匹配不论什么包括零个或一个 n 的字符串。 |
n{X} | 匹配包括 X 个 n 的序列的字符串。 |
n{X,Y} | 匹配包括 X 或 Y 个 n 的序列的字符串。 |
n{X,} | 匹配包括至少 X 个 n 的序列的字符串。 |
n$ | 匹配不论什么结尾为 n 的字符串。 |
^n | 匹配不论什么开头为 n 的字符串。 |
?=n | 匹配不论什么其后紧接指定字符串 n 的字符串。 |
?!n | 匹配不论什么其后没有紧接指定字符串 n 的字符串。 |
2、上次匹配的结果是由方法 RegExp.exec() 和 RegExp.test() 找到的,它们都以 lastIndex 属性所指的位置作为下次检索的起始点。这样,就能够通过重复调用这两个方法来遍历一个字符串中的全部匹配文本。
3、该属性是可读可写的。仅仅要目标字符串的下一次搜索開始,就能够对它进行设置。当方法 exec() 或 test() 再也找不到能够匹配的文本时,它们会自己主动把 lastIndex 属性重置为 0。
2、在这样的模式中,假设要检索的字符串中含有换行符,^ 和 $ 锚除了匹配字符串的开头和结尾外还匹配每行的开头和结尾。
3、假设 m 标志被设置,则该属性为 true,否则为 false。
<html> <head></head> <body> <script type="text/javascript"> var test="no zuo not to die" part=/no/g document.write(test.replace(part,"bu")+"<br/>") //返回值:bu zuo but to die part.compile(/no(t)?/g) document.write(test.replace(part,"bu")+"<br/>") //返回值:bu zuo bu to die </script> </body> </html>
<html> <head></head> <body> <script type="text/javascript"> var test="no zuo not to die" var part = new RegExp("no","g") var result while((result = part.exec(test)) != null) { document.write(result); document.write("<br/>"); document.write(part.lastIndex); document.write("<br/>"); } </script> </body> </html> 返回值:no 2 no 9
<html> <head></head> <body> <script type="text/javascript"> var test="no zuo not to die" var part = new RegExp("no","g") var result = part.test(test) document.write(result) //返回值:true </script> </body> </html>
<html>
<head>
<script>
function Excgent(r,g){
if(r==""||g=="")
return false
else
{
var part=new RegExp(r);
if(part.exec(g))
return true;
return false
}
}
</script>
</head>
<body>
<h4>仅仅能输入5-20个以字母开头、可带数字、“_”、“.”的字串<h4>
<input type="text" id="a2" style="width:300px;"></input>
<br/>
<button onclick="alert(Excgent(‘^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$‘,a2.value))">点击</button>
<br/>
</body>
</html>
<html>
<head>
<script>
function Excgent(r,g){
if(r==""||g=="")
return false
else
{
var part=new RegExp(r);
if(part.exec(g))
return true;
return false
}
}
</script>
</head>
<body>
<h4>仅仅能输入数字<h4>
<input type="text" id="a2" style="width:300px;"></input>
<br/>
<button onclick="alert(Excgent(‘^[0-9]{1,20}$‘,a2.value))">点击</button>
<br/>
</body>
</html>
<html>
<head>
<script>
function Excgent(r,g){
if(r==""||g=="")
return false
else
{
var part=new RegExp(r);
if(part.exec(g))
return true;
return false
}
}
</script>
</head>
<body>
<h4>仅仅能13、159开头的手机号码<h4>
<input type="text" id="a2" style="width:300px;"></input>
<br/>
<button onclick="alert(Excgent(‘^13[0-9]{1}[0-9]{8}|^15[9]{1}[0-9]{8}‘,a2.value))">点击</button>
<br/>
</body>
</html>
标签:style blog http io color ar 使用 java sp
原文地址:http://www.cnblogs.com/yxwkf/p/4085042.html