Js正则整理

    xiaoxiao2022-06-30  162

    1. JS正则表达式整理(待补充)

    字符 含意

    \做为转意,即通常在 \后面的字符不按原来意义解释,如 /b/匹配字符 b,当b前面加了反斜杆后 /\b/,转意为匹配一个单词的边界。\也可以对正则表达式功能字符的还原,如匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,在后面加了\后,a\*/将只匹配 a*。 ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a" $匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A" * 匹配前面元字符0次或多次,/ba */将匹配b,ba,baa,baaa +匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa ?匹配前面元字符0次或1次,/ba*/将匹配b,ba (x) 匹配x保存x在名为$1...$9的变量中 x|y匹配x或y {n}精确匹配n次 {n,}匹配n次以上 {n,m}匹配n-m次 [xyz]字符集(character set),匹配这个集合中的任一一个字符(或元字符) [^xyz]不匹配这个集合中的任何一个字符 [\b]匹配一个退格符 \b匹配一个单词的边界 \B 匹配一个单词的非边界 \cX这儿,X是一个控制符,/\cM/匹配Ctrl-M \d匹配一个字数字符,/\d/ = /[0-9]/ \D匹配一个非字数字符,/\D/ = /[^0-9]/ \n匹配一个换行符 \r匹配一个回车符 \s匹配一个空白字符,包括\n,\r,\f,\t,\v等 \S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/ \t匹配一个制表符 \v匹配一个重直制表符 \w匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9] \W匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。

    字母数字字符 自身

    \ f换页符 \ n 换行符 \ r回车 \ t制表符 \ v垂直制表符 \ /一个 / 直接量 \ \一个 \ 直接量 \ .一个 . 直接量 \ *一个 * 直接量 \ +一个 + 直接量 \ ? 一个 ? 直接量 \ |一个 | 直接量 \ (一个 ( 直接量 \ )一个 ) 直接量 \ [一个 [ 直接量 \ ] 一个 ] 直接量 \ { 一个 { 直接量 \ } 一个 } 直接量 \ XXX由十进制数 XXX 指 定的ASCII码字符 \ Xnn 由十六进制数 nn 指定的ASCII码字符 \ cX控制字符^X. 例如, \cI等价于 \t, \cJ等价于 \n

    2. JS常用正则表达式

    网上搜罗,可能有误

    //校验是否全由数字组成 var patrn=/^[0-9]{1,20}$/; //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; //校验用户姓名:只能输入1-30个以字母开头的字串 var patrn=/^[a-zA-Z]{1,30}$/; //校验密码:只能输入6-20个字母、数字、下划线 var patrn=/^(w){6,20}$/; //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/; //校验手机号码:必须以数字开头,除数字外,可含有“-” var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/; //校验邮政编码 var patrn=/^[a-zA-Z0-9 ]{3,12}$/; 校验是否IP地址 ((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))) 常用正则表达式合集:($这表示以其前面的字符结尾) 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 验证非零的正整数:^\+?[1-9][0-9]*$ 验证非零的负整数:^\-[1-9][0-9]*$ 验证非负整数(正整数 + 0) ^\d+$ 验证非正整数(负整数 + 0) ^((-\d+)|(0+))$ 验证长度为3的字符:^.{3}$ 验证由26个英文字母组成的字符串:^[A-Za-z]+$ 验证由26个大写英文字母组成的字符串:^[A-Z]+$ 验证由26个小写英文字母组成的字符串:^[a-z]+$ 验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 验证由数字、26个英文字母或者下划线组成的字符串:^\w+$ 验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。 验证是否含有 ^%&',;=?$" 等字符:[^%&',;=?$\x22]+ 验证汉字:^[\u4e00-\u9fa5],{0,}$ 验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$ 验证电话号码:^(\d3,4|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。 验证身份证号(15位或18位数字):^\d{15}|\d{}18$ 验证一年的12个月:^(0?[1-9]|1[0-2])$正确格式为:“01”-“09”和“1”“12” 验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。 整数:^-?\d+$ 非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$ 正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 非正浮点数(负浮点数 + 0)^((-\d+(\.\d+)?)|(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+)?$

    3. JS字符串替换 replace() 方法

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

    stringObject.replace(regexp/substr, replacement)

    参数:

    regexp/substr 必需。字符串 || 要替换的模式的 RegExp 对象replacement 必需。替换后的文本 || 生成替换文本的函数

    返回值:

    一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

    说明:

    如果你想替换所有匹配的子串,就加上全局标志g,如/Microsoft/g,否则,它只替换第一个匹配子串。replacement 中的$字符具有特定的含义。如果你想取出用圆括号括着的匹配子串,如果有的话,就使用$1, …, $9属性

    使用方法:

    //使用 W3School 替换字符串中的 Microsoft str.replace(/Microsoft/, "W3School") //使用 W3School 替换字符串中 全部 的 Microsoft 就在"/"后加上g str.replace(/Microsoft/g, "W3School") //$1即([0-9]*)匹配到的内容,将表情代码匹配后替换成指定图片 str = str.replace(/\[em_([0-9]*)\]/g, "<img src='/images/face/$1.gif'/>");

    最新回复(0)