正则表达式入门,css实现打字效果

本文实例为大家分享了JavaScript实现打字效果的具体代码,供大家参考,具体内容如下

转自:

只能输入数字:”^[0-9]*$”。

1.效果

另外推荐一篇学正则表达式的文章:

  只能输入n位的数字:”^\d{n}$”。

图片 1

 图片 2

  只能输入至少n位的数字:”^\d{n,}$”。

2.源码

(1)“@”符号
“@”表示,跟在它后面的字符串是个“逐字字符串”,不是很好理解,举个例子,以下两个声明是等效的:
string x=”D:\\My Huang\\My Doc”;
string y = @”D:\My Huang\My Doc”;
事实上,如果按如下声明,C#将会报错,因为“\”在C#中用于实现转义,如“\n”换行:
string x = “D:\My Huang\My Doc”;

  只能输入m~n位的数字:。”^\d{m,n}$”

<html>
<head>
 <style type="text/css">
  #myDiv{
   display: inline-block;
   width:500px;
   height:300px;
   background-color:rgba(0,0,0,0.3);
   color:hsla(0,100%,70%,1);
   word-wrap:break-word;
   line-height:30px;
   letter-spacing:3px;
   padding-left:3px;
   text-indent:40px;
   border-radius:5px;
   -webkit-box-shadow: 3px 3px 3px 3px rgba(0,0,0,0.1);
   -moz-box-shadow: 3px 3px 3px 3px rgba(0,0,0,0.1);
   box-shadow: 3px 3px 3px 3px rgba(0,0,0,0.1);
  }
 </style>
 <script type="text/javascript">
  window.onload = function () {
   var myDiv = document.getElementById("myDiv");
   var contentArr = "秋天来临了天空像一块覆盖大地的蓝宝石。村外那个小池塘睁着碧澄澄的眼睛,凝望着这美好的天色。一对小白鹅侧着脑袋欣赏自己映在水里的影子。山谷里枫树的叶子,不知是否喝了过量的酒,红的像一团火似的。村前村后的稻子,低着头弯着腰,在秋风中默默地等待着人们去收割,半空中,排着“人”字形的雁群,高兴的唱着歌,告别人们,向天边慢慢飞去……".split("");
   var content = "";
   var index = 0;
   var ID = setInterval(function () {
    content += contentArr[index];
    myDiv.innerHTML = content + "_";
    index++;
    if(index === contentArr.length){
     myDiv.innerHTML = content ;
     clearInterval(ID);
     console.log("结束了");
    }
   },100);
  }
 </script>
</head>
<body>
<div id="myDiv"></div>
</body>
</html>

(2)基本的语法字符。
\d  0-9的数字
\D  \d的补集(以所以字符为全集,下同),即所有非数字的字符
\w  单词字符,指大小写字母、0-9的数字、下划线
\W  \w的补集
\s 
空白字符,包括换行符\n、回车符\r、制表符\t、垂直制表符\v、换页符\f
\S  \s的补集
.  除换行符\n外的任意字符
[…]  匹配[]内所列出的所有字符
[^…]  匹配非[]内所列出的字符
下面提供一些简单的示例:

  只能输入零和非零开头的数字:”^(0|[1-9][0-9]*)$”。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

图片 3图片 4Code
string i = “\n”;
string m = “3”;
Regex r = new Regex(@”\D”);
//同Regex r = new Regex(“\\D”);
//r.IsMatch(i)结果:true
//r.IsMatch(m)结果:false

  只能输入有两位小数的正实数:”^[0-9]+(.[0-9]{2})?$”。

您可能感兴趣的文章:

  • JS实现的自动打字效果示例
  • js实现键盘自动打字效果
  • JS实现在状态栏显示打字效果完整实例
  • JS模拟键盘打字效果的方法
  • JavaScript实现打字效果的方法
  • JavaScript模拟实现键盘打字效果
  • 不使用jquery实现js打字效果示例分享
  • javascript
    打字效果的文字特效
  • Js 打字效果 逐一出现的文字
  • 用js实现的打字效果的带链接的新闻标题

string i = “%”;
string m = “3”;
Regex r = new Regex(“[a-z0-9]”);
//匹配小写字母或数字字符
//r.IsMatch(i)结果:false
//r.IsMatch(m)结果:true

  只能输入有1~3位小数的正实数:”^[0-9]+(.[0-9]{1,3})?$”。

 

  只能输入非零的正整数:”^\+?[1-9][0-9]*$”。

(3)定位字符
“定位字符”所代表的是一个虚的字符,它代表一个位置,你也可以直观地认为“定位字符”所代表的是某个字符与字符间的那个微小间隙。
^  表示其后的字符必须位于字符串的开始处
$  表示其前面的字符必须位于字符串的结束处
\b  匹配一个单词的边界
\B  匹配一个非单词的边界
另外,还包括:\A  前面的字符必须位于字符处的开始处,\z 
前面的字符必须位于字符串的结束处,\Z 
前面的字符必须位于字符串的结束处,或者位于换行符前
下面提供一些简单的示例:

  只能输入非零的负整数:”^\-[1-9][]0-9″*$。

图片 5图片 6Code
string i = “Live for nothing,die for something”;
Regex r1 = new Regex(“^Live for nothing,die for something$”);
//r1.IsMatch(i) true
Regex r2 = new Regex(“^Live for nothing,die for some$”);
//r2.IsMatch(i) false
Regex r3 = new Regex(“^Live for nothing,die for some”);
//r3.IsMatch(i) true

  只能输入长度为3的字符:”^.{3}$”。

string i = @”Live for nothing,
die for something”;//多行
Regex r1 = new Regex(“^Live for nothing,die for something$”);
Console.WriteLine(“r1 match count:” + r1.Matches(i).Count);//0
Regex r2 = new Regex(“^Live for nothing,die for something$”, RegexOptions.Multiline);
Console.WriteLine(“r2 match count:” + r2.Matches(i).Count);//0
Regex r3 = new Regex(“^Live for nothing,\r\ndie for something$”);
Console.WriteLine(“r3 match count:” + r3.Matches(i).Count);//1
Regex r4 = new Regex(“^Live for nothing,$”);
Console.WriteLine(“r4 match count:” + r4.Matches(i).Count);//0
Regex r5 = new Regex(“^Live for nothing,$”, RegexOptions.Multiline);
Console.WriteLine(“r5 match count:” + r5.Matches(i).Count);//0
Regex r6 = new Regex(“^Live for nothing,\r\n$”);
Console.WriteLine(“r6 match count:” + r6.Matches(i).Count);//0
Regex r7 = new Regex(“^Live for nothing,\r\n$”, RegexOptions.Multiline);
Console.WriteLine(“r7 match count:” + r7.Matches(i).Count);//0
Regex r8 = new Regex(“^Live for nothing,\r$”);
Console.WriteLine(“r8 match count:” + r8.Matches(i).Count);//0
Regex r9 = new Regex(“^Live for nothing,\r$”, RegexOptions.Multiline);
Console.WriteLine(“r9 match count:” + r9.Matches(i).Count);//1
Regex r10 = new Regex(“^die for something$”);
Console.WriteLine(“r10 match count:” + r10.Matches(i).Count);//0
Regex r11 = new Regex(“^die for something$”, RegexOptions.Multiline);
Console.WriteLine(“r11 match count:” + r11.Matches(i).Count);//1
Regex r12 = new Regex(“^”);
Console.WriteLine(“r12 match count:” + r12.Matches(i).Count);//1
Regex r13 = new Regex(“$”);
Console.WriteLine(“r13 match count:” + r13.Matches(i).Count);//1
Regex r14 = new Regex(“^”, RegexOptions.Multiline);
Console.WriteLine(“r14 match count:” + r14.Matches(i).Count);//2
Regex r15 = new Regex(“$”, RegexOptions.Multiline);
Console.WriteLine(“r15 match count:” + r15.Matches(i).Count);//2
Regex r16 = new Regex(“^Live for nothing,\r$\n^die for something$”, RegexOptions.Multiline);
Console.WriteLine(“r16 match count:” + r16.Matches(i).Count);//1
//对于一个多行字符串,在设置了Multiline选项之后,^和$将出现多次匹配。

  只能输入由26个英文字母组成的字符串:”^[A-Za-z]+$”。

string i = “Live for nothing,die for something”;
string m = “Live for nothing,die for some thing”;
Regex r1 = new Regex(@”\bthing\b”);
Console.WriteLine(“r1 match count:” + r1.Matches(i).Count);//0
Regex r2 = new Regex(@”thing\b”);
Console.WriteLine(“r2 match count:” + r2.Matches(i).Count);//2
Regex r3 = new Regex(@”\bthing\b”);
Console.WriteLine(“r3 match count:” + r3.Matches(m).Count);//1
Regex r4 = new Regex(@”\bfor something\b”);
Console.WriteLine(“r4 match count:” + r4.Matches(i).Count);//1
//\b通常用于约束一个完整的单词

  只能输入由26个大写英文字母组成的字符串:”^[A-Z]+$”。

 

  只能输入由26个小写英文字母组成的字符串:”^[a-z]+$”。

 (4)重复描述字符
“重复描述字符”是体现C#正则表达式“很好很强大”的地方之一:
{n}  匹配前面的字符n次
{n,}  匹配前面的字符n次或多于n次
{n,m}  匹配前面的字符n到m次
?  匹配前面的字符0或1次
+  匹配前面的字符1次或多于1次
*  匹配前面的字符0次或式于0次
以下提供一些简单的示例:

  只能输入由数字和26个英文字母组成的字符串:”^[A-Za-z0-9]+$”。

图片 7图片 8Code
string x = “1024”;
string y = “+1024”;
string z = “1,024”;
string a = “1”;
string b=”-1024″;
string c = “10000”;
Regex r = new Regex(@”^\+?[1-9],?\d{3}$”);
Console.WriteLine(“x match count:” + r.Matches(x).Count);//1
Console.WriteLine(“y match count:” + r.Matches(y).Count);//1
Console.WriteLine(“z match count:” + r.Matches(z).Count);//1
Console.WriteLine(“a match count:” + r.Matches(a).Count);//0
Console.WriteLine(“b match count:” + r.Matches(b).Count);//0
Console.WriteLine(“c match count:” + r.Matches(c).Count);//0
//匹配1000到9999的整数。

  只能输入由数字、26个英文字母或者下划线组成的字符串:”^\w+$”。

 

  验证用户密码:”^[a-zA-Z]\w{5,17}$”正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

 (5)择一匹配
C#正则表达式中的 (|)
符号似乎没有一个专门的称谓,姑且称之为“择一匹配”吧。事实上,像[a-z]也是一种择一匹配,只不过它只能匹配单个字符,而(|)则提供了更大的范围,(ab|xy)表示匹配ab或匹配xy。注意“|”与“()”在此是一个整体。下面提供一些简单的示例:

  验证是否含有^%&’,;=?$\”等字符:”[^%&’,;=?$\x22]+”。

图片 9图片 10Code
string x = “0”;
string y = “0.23”;
string z = “100”;
string a = “100.01”;
string b = “9.9”;
string c = “99.9”;
string d = “99.”;
string e = “00.1”;
Regex r = new Regex(@”^\+?((100(.0+)*)|([1-9]?[0-9])(\.\d+)*)$”);
Console.WriteLine(“x match count:” + r.Matches(x).Count);//1
Console.WriteLine(“y match count:” + r.Matches(y).Count);//1
Console.WriteLine(“z match count:” + r.Matches(z).Count);//1
Console.WriteLine(“a match count:” + r.Matches(a).Count);//0
Console.WriteLine(“b match count:” + r.Matches(b).Count);//1
Console.WriteLine(“c match count:” + r.Matches(c).Count);//1
Console.WriteLine(“d match count:” + r.Matches(d).Count);//0
Console.WriteLine(“e match count:” + r.Matches(e).Count);//0
//匹配0到100的数。最外层的括号内包含两部分“(100(.0+)*)”,“([1-9]?[0-9])(\.\d+)*”,这两部分是“OR”的关系,即正则表达式引擎会先尝试匹配100,如果失败,则尝试匹配后一个表达式(表示[0,100)范围中的数字)。

  只能输入汉字:**“^[\u4e00-\u9fa5]{0,}$”**

 

  验证Email地址:”^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$”。

(6)特殊字符的匹配
下面提供一些简单的示例:

  验证InternetURL:”^

图片 11图片 12Code
string x = “\\”;
Regex r1 = new Regex(“^\\\\$”);
Console.WriteLine(“r1 match count:” + r1.Matches(x).Count);//1
Regex r2 = new Regex(@”^\\$”);
Console.WriteLine(“r2 match count:” + r2.Matches(x).Count);//1
Regex r3 = new Regex(“^\\$”);
Console.WriteLine(“r3 match count:” + r3.Matches(x).Count);//0
//匹配“\”

  验证电话号码:”^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$”正确格式为:”XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX”。

string x = “\””;
Regex r1 = new Regex(“^\”$”);
Console.WriteLine(“r1 match count:” + r1.Matches(x).Count);//1
Regex r2 = new Regex(@”^””$”);
Console.WriteLine(“r2 match count:” + r2.Matches(x).Count);//1
//匹配双引号

  验证身份证号(15位或18位数字):”^\d{15}|\d{18}$”。

 

  验证一年的12个月:”^(0?[1-9]|1[0-2])$”正确格式为:”01″~”09″和”1″~”12″。

 (7)组与非捕获组
以下提供一些简单的示例:

  验证一个月的31天:”^((0?[1-9])|((1|2)[0-9])|30|31)$”正确格式为;”01″~”09″和”1″~”31″。

图片 13图片 14Code
string x = “Live for nothing,die for something”;
string y = “Live for nothing,die for somebody”;
Regex r = new Regex(@”^Live ([a-z]{3}) no([a-z]{5}),die \1 some\2$”);
Console.WriteLine(“x match count:” + r.Matches(x).Count);//1
Console.WriteLine(“y match count:” + r.Matches(y).Count);//0
//正则表达式引擎会记忆“()”中匹配到的内容,作为一个“组”,并且可以通过索引的方式进行引用。表达式中的“\1”,用于反向引用表达式中出现的第一个组,即粗体标识的第一个括号内容,“\2”则依此类推。

  利用正则表达式限制网页表单里的文本框输入内容:

string x = “Live for nothing,die for something”;
Regex r = new Regex(@”^Live for no([a-z]{5}),die for some\1$”);
if (r.IsMatch(x))
{
    Console.WriteLine(“group1 value:” + r.Match(x).Groups[1].Value);//输出:thing
}
//获取组中的内容。注意,此处是Groups[1],因为Groups[0]是整个匹配的字符串,即整个变量x的内容。

  用正则表达式限制只能输入中文:onkeyup=”value=value.replace(/[^\u4E00-\u9FA5]/g,’’)”
onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\u4E00-\u9FA5]/g,’’))”

string x = “Live for nothing,die for something”;
Regex r = new Regex(@”^Live for no(?<g1>[a-z]{5}),die for some\1$”);
if (r.IsMatch(x))
{
    Console.WriteLine(“group1 value:” + r.Match(x).Groups[“g1”].Value);//输出:thing
}
//可根据组名进行索引。使用以下格式为标识一个组的名称(?<groupname>…)。

  用正则表达式限制只能输入全角字符
onkeyup=”value=value.replace(/[^\uFF00-\uFFFF]/g,’’)”
onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\uFF00-\uFFFF]/g,’’))”

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图