js各类正则表达式(中⽂、字母、数字、全⾓)
把⼀个字符串按照⾮字母数字下滑线,中划线进⾏截取例如regx("@lklo85-_")="lklo85-_"
regx:function(str){
var reg = new RegExp("^\\w+$")
st(str)){
return  str
}else {
let string = ""
for(let i=0;i<str.length;i++){
if(str.charAt(i) == '-'){
string+=str.charAt(i)
}else st(str.charAt(i))){
string+=str.charAt(i)
}
}
return string
}
},
<input  οnkeypress="return  /[\w\u4e00-\u9fa5]/.test(String.fromCharCode(window.event.keyCode))"
οnpaste="return  !/[^\w\u4e00-\u9fa5]/g.test(Data('Text'))"
οndragenter="return  false"/>
再粘贴⼀些别⼈写的。
1.只能输⼊数字和英⽂的:
<input οnkeyup="place(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^\d]/g,''))" ID="
2.只能输⼊数字的:
<input οnkeyup="place(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^\d]/g,''))" ID="
3.只能输⼊全⾓的:
<input οnkeyup="place(/[^\uFF00-
\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^\uFF00-
\uFFFF]/g,''))" ID="Text3" NAME="Text3">
4.只能输⼊汉字的:
<input οnkeyup="place(/[^\u4E00-
\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^\u4E00-
\u9FA5]/g,''))" ID="Text4" NAME="Text4">
5.邮件地址验证:
var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]
{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$"
var re = new RegExp(regu);
if (s.search(re) != -1) {
return true;
} else {
window.alert ("请输⼊有效合法的E-mail地址!")
return false;
}
6.⾝份证:
"^\\d{17}(\\d|x)$"
7.17种正则表达式
"^\\d+$"  //⾮负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\\d+)|(0+))$"  //⾮正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\\d+$"    //整数
"^\\d+(\\.\\d+)?$"  //⾮负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //⾮正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
"^(-?\\d+)(\\.\\d+)?$"  //浮点数
"^[A-Za-z]+$"  //由26个英⽂字母组成的字符串
"^[A-Z]+$"  //由26个英⽂字母的⼤写组成的字符串
"^[a-z]+$"  //由26个英⽂字母的⼩写组成的字符串
"^[A-Za-z0-9]+$"  //由数字和26个英⽂字母组成的字符串
"^\\w+$"  //由数字、26个英⽂字母或者下划线组成的字符串
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url
=============================================
1.取消按钮按下时的虚线框
  在input⾥添加属性值  hideFocus 或者 HideFocus=true
2.只读⽂本框内容
在input⾥添加属性值  readonly
3.防⽌退后清空的TEXT⽂档(可把style内容做做为类引⽤)
  <INPUT style=behavior:url(#default#savehistory); type=text id=oPersistInput>
4.ENTER键可以让光标移到下⼀个输⼊框
  <input οnkeydοwn="if(event.keyCode==13)event.keyCode=9" >
5.只能为中⽂(有闪动)
  <input οnkeyup="value="/place(/[" -~]/g,’’)" οnkeydοwn="if(event.keyCode==13)event.keyCode=9">
6.只能为数字(有闪动)
<input οnkeyup="value="/place(/["^\d]/g,’’) "onbeforepaste="clipboardData.setData(’text’,Data(’text’).replace(/[^\d]/g,’’))">
7.只能为数字(⽆闪动)
  <input ime-
mode:disabled" οnkeydοwn="if(event.keyCode==13)event.keyCode=9" onKeyPress="if ((event.keyCode<48 || event.keyCode>57)) urnVa
8.只能输⼊英⽂和数字(有闪动)
<input οnkeyup="value="/place(/[\W]/g,"’’)" onbeforepaste="clipboardData.setData(’text’,Data(’text’).replace(/[^\d]/g,’’))">
9.屏蔽输⼊法
  <input type="text" name="url" ime-mode:disabled" οnkeydοwn="if(event.keyCode==13)event.keyCode=9">
10. 只能输⼊数字,⼩数点,减号(-)字符(⽆闪动)
javascript正则表达式使⽤详解
简介
简单的说,正则表达式是⼀种可以⽤于模式匹配和替换的强有⼒的⼯具。其作⽤如下:
测试字符串的某个模式。例如,可以对⼀个输⼊字符串进⾏测试,看在该字符串是否存在⼀个电话号码模式或⼀个信⽤卡号码模式。这称为数据有效性验证。
替换⽂本。可以在⽂档中使⽤⼀个正则表达式来标识特定⽂字,然后可以全部将其删除,或者替换为别的⽂字。
根据模式匹配从字符串中提取⼀个⼦字符串。可以⽤来在⽂本或输⼊字段中查特定⽂字。
基本语法
在对正则表达式的功能和作⽤有了初步的了解之后,我们就来具体看⼀下正则表达式的语法格式。
正则表达式的形式⼀般如下: 
/love/  其中位于“/”定界符之间的部分就是将要在⽬标对象中进⾏匹配的模式。⽤户只要把希望查匹配对象的模式内容放⼊“/”定界符之间即可。为了能够使⽤户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专⽤字符,可以⽤来规定其前导字符(即位于元字符前⾯的字符)在⽬标对象中的出现模式。
较为常⽤的元字符包括: “+”, “*”,以及 “?”。
“+”元字符规定其前导字符必须在⽬标对象中连续出现⼀次或多次。
“*”元字符规定其前导字符必须在⽬标对象中出现零次或连续多次。
“?”元字符规定其前导对象必须在⽬标对象中连续出现零次或⼀次。
下⾯,就让我们来看⼀下正则表达式元字符的具体应⽤。
/
fo+/  因为上述正则表达式中包含“+”元字符,表⽰可以与⽬标对象中的 “fool”, “fo”, 或者 “football”等在字母f后⾯连续出现⼀个或多个字母o 的字符串相匹配。
/eg*/  因为上述正则表达式中包含“*”元字符,表⽰可以与⽬标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后⾯连续出现零个或多个字母g 的字符串相匹配。
/Wil?/  因为上述正则表达式中包含“?”元字符,表⽰可以与⽬标对象中的 “Win”, 或者“Wilson”,等在字母i后⾯连续出现零个或⼀个字母l的字符串相匹配。
有时候不知道要匹配多少字符。为了能适应这种不确定性,正则表达式⽀持限定符的概念。这些限定符可以指定正则表达式的⼀个给定组件必须要出现多少次才能满⾜匹配。
{n} n 是⼀个⾮负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是⼀个⾮负整数。⾄少匹配 n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为⾮负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于'o?'。请注意在逗号和两个数之间不能有空格。
除了元字符之外,⽤户还可以精确指定模式在匹配对象中出现的频率。例如,/jim {2,6}/ 上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。
在对如何使⽤正则表达式有了初步了解之后,我们来看⼀下其它⼏个重要的元字符的使⽤⽅式。
代码
1. \s:⽤于匹配单个空格符,包括tab键和换⾏符;
2. \S:⽤于匹配除单个空格符之外的所有字符;
3. \d:⽤于匹配从0到9的数字;
4. \w:⽤于匹配字母,数字或下划线字符;
5. \W:⽤于匹配所有与\w不匹配的字符;
6. . :⽤于匹配除换⾏符之外的所有字符。
(说明:我们可以把\s和\S以及\w和\W看作互为逆运算)
下⾯,我们就通过实例看⼀下如何在正则表达式中使⽤上述元字符。
/\s+/ 上述正则表达式可以⽤于匹配⽬标对象中的⼀个或多个空格字符。
/\d000/ 如果我们⼿中有⼀份复杂的财务报表,那么我们可以通过上述正则表达式轻⽽易举的查到所有总额达千元的款项。
除了我们以上所介绍的元字符之外,正则表达式中还具有另外⼀种较为独特的专⽤字符,即定位符。定位符⽤于规定匹配模式在⽬标对象中的出现位置。较为常⽤的定位符包括: “^”, “$”, “\b” 以及 “\B”。
代码
1. “^”定位符规定匹配模式必须出现在⽬标字符串的开头js正则表达式判断数字
2. “$”定位符规定匹配模式必须出现在⽬标对象的结尾
3. “\b”定位符规定匹配模式必须出现在⽬标字符串的开头或结尾的两个边界之⼀
4. “\B”定位符则规定匹配对象必须位于⽬标字符串的开头和结尾两个边界之内,
5. 即匹配对象既不能作为⽬标字符串的开头,也不能作为⽬标字符串的结尾。
同样,我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两组定位符。举例来说: /^hell/ 因为上述正则表达式中包含“^”定位符,所以可以与⽬标对象中以 “hell”,“hello”或“hellhound”开头的字符串相匹配。 /ar$/ 因为上述正则表达式中包含“$”定位符,所以可以与⽬标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。 /\bbom/ 因为上述正则表达式模式以“\b”定位符开头,所以可以与⽬标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。/man\b/ 因为上述正则表达式模式以“\b”定位符结尾,所以可以与⽬标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。
为了能够⽅便⽤户更加灵活的设定匹配模式,正则表达式允许使⽤者在匹配模式中指定某⼀个范围⽽不局限于具体的字符。例如:
代码
1. /[A-Z]/  上述正则表达式将会与从A到Z范围内任何⼀个⼤写字母相匹配。
2. /[a-z]/  上述正则表达式将会与从a到z范围内任何⼀个⼩写字母相匹配。
3. /[0-9]/  上述正则表达式将会与从0到9范围内任何⼀个数字相匹配。
4. /([a-z][A-Z][0-9])+/ 上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等相匹配。
这⾥需要提醒⽤户注意的⼀点就是可以在正则表达式中使⽤ “()” 把字符串组合在⼀起。“()”符号包含的内容必须同时出现在⽬标对象中。因此,上述正则表达式将⽆法与诸如“abc”等的字符串匹配,因为“abc”中的最后⼀个字符为字母⽽⾮数字。
如果我们希望在正则表达式中实现类似编程逻辑中的“或”运算,在多个不同的模式中任选⼀个进⾏匹配的话,可以使⽤管道符 “|”。例如:/to|too|2/ 上述正则表达式将会与⽬标对象中的 “to”, “too”, 或 “2” 相匹配。
正则表达式中还有⼀个较为常⽤的运算符,即否定符 “[^]”。与我们前⽂所介绍的定位符 “^” 不同,否定符 “[^]”规定⽬标对象中不能存在模式中所规定的字符串。例如:/[^A-C]/ 上述字符串将会与⽬标对象中除A,B,和C之外的任何字符相匹配。⼀般来说,当“^”出现在 “[]”内时就被视做否定运算符;⽽当“^”位于“[]”之外,或没有“[]”时,则应当被视做定位符。
最后,当⽤户需要在正则表达式的模式中加⼊元字符,并查其匹配对象时,可以使⽤转义符“\”。例如:/Th\*/  上述正则表达式将会与⽬标对象中的“Th*”⽽⾮“The”等相匹配。
在构造正则表达式之后,就可以象数学表达式⼀样来求值,也就是说,可以从左⾄右并按照⼀个优先级顺序来求值。优先级如下:
代码
1. 1.\ 转义符
2. 2.(), (?:), (?=), [] 圆括号和⽅括号
3. 3.*, +, ?, {n}, {n,}, {n,m} 限定符
4. 4.^, $, \anymetacharacter 位置和顺序
5. 5.|“或”操作
使⽤实例
在JavaScript 1.2中带有⼀个功能强⼤的RegExp()对象,可以⽤来进⾏正则表达式的匹配操作。其中的test()⽅法可以检验⽬标对象中是否包含匹配模式,并相应的返回true或false。
我们可以使⽤JavaScript编写以下脚本,验证⽤户输⼊的邮件地址的有效性。
代码
1. <html>
2. <head>
3.  <script language="Javascript1.2">
4.      <!-- start hiding
5.      function verifyAddress(obj)
6.      {
7.       var email = ail.value;
8.       var pattern =
9. /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
10.       flag = st(email);
11.       if(flag)
12.       {
13.        alert(“Your email address is correct!”);
14.        return true;
15.       }
16.       else
17.        {
18.         alert(“Please try again!”);
19.         return false;
20.        }
21.      }
22.      // stop hiding -->
23.    </script>
24.   </head>
25.  <body>
26.   <form onSubmit="return verifyAddress(this);">
27.    <input name="email"type="text">
28.    <input type="submit">
29.    </form>
30.   </body>
31. </html>
正则表达式对象
本对象包含正则表达式模式以及表明如何应⽤模式的标志。
代码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。