• JavaScript正则表达式


    JavaScript RegExp 对象

    RegExp:是正则表达式(regular expression)的简写。

    正则表达式描述了字符的模式对象。可以使用正则表达式来描述要检索的内容。

    简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。

    语法:

    var patt=new RegExp(匹配模式,修饰符);

    或:var patt=/匹配模式/,匹配方式;

        模式描述了一个表达式模型。修饰符(modifiers)描述了检索是否是全局,区分大小写等。

        注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 )。比如,以下是等价的:

        var re = new RegExp("\w+");

        var re = /w+/;

    修饰符:修饰符用于执行区分大小写和全局匹配。

    修饰符         描述

    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             匹配非单词边    界。

                查找 NUL 字符。

                 查找换行符。

    f             查找换页符。

                查找回车符。

                查找制表符。

    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 的字符串。

    RegExp 对象方法

    方法         描述                 

    compile         编译正则表达式。     

    exec         检索字符串中指定的值。返回找到的值,并确定其位置。         

    test         检索字符串中指定的值。返回 true 或 false。    

    支持正则表达式的 String 对象的方法

    方法     描述         

    search     检索与正则表达式相匹配的值。         

    match     找到一个或多个正则表达式的匹配。         

    replace     替换与正则表达式匹配的子串。         

    split     把字符串分割为字符串数组。     

    实例代码:

    实例 1:

    在字符串中不区分大小写找"W3CSchool"

    var str="Visit W3CSchool";

    var patt1=/w3cschool/i;

    以下标记的文本是获得的匹配的表达式:

    W3CSchool

    实例 2

    全文查找 "is"

    var str="Is this all there is?";

    var patt1=/is/g;

    以下标记的文本是获得的匹配的表达式:

    Is this all there is?

    实例 3

    全文查找和不区分大小写搜索 "is"

    var str="Is this all there is?";

    var patt1=/is/gi;

    以下 标记的文本是获得的匹配的表达式:

    Is this all there is?

    常用正则表达式表单:

    1.文本框只能输入数字代码(小数点也不能输入)

    <input onkeyup="this.value=this.value.replace(/D/g,'')" onafterpaste="this.value=this.value.replace(/D/g,'')">

    2.只能输入数字,能输小数点.

    <input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">

    <input name=txt1 onchange="if(/D/.test(this.value)){alert('只能输入数字');this.value='';}">

    3.禁止输入字母

    <input onkeyup="this.value=this.value.replace(/[A-z]/g,'')" onafterpaste="this.value=this.value.replace(/[A-z]/g,'')" ></input>

    4.只能输入字母和汉字

    <input onkeyup="value=value.replace(/[d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[d]/g,''))"

    maxlength=10 name="Numbers">

    5.只能输入英文字母和数字,不能输入中文

    <input onkeyup="value=value.replace(/[^w./]/ig,'')">

    6.只能输入数字和英文<font color="Red">chun</font>

    <input onKeyUp="value=value.replace(/[^d|chun]/g,'')">

    7.小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:

    <input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /.dd$/.test(value))event.returnValue=false">

    8.小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:

    <input onkeyup="this.value=this.value.replace(/^(-)*(d+).(dd).*$/,'$1$2.$3')">

    9.禁止特殊字符:

    onKeyPress="if(event.keyCode < 45 || event.keyCode > 57 ) event.returnValue = false;"

    10.只能输入汉字:

    <input onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^

    /u4E00-/u9FA5]/g,''))">

    style="ime-mode:disabled"禁止汉字输入法

    11.只能输入数字:

    <input onkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))">

    12.只能输入英文和数字:

    <input onkeyup="value=value.replace(/[/W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))">

    控制输入框只能输入文字或数字,也可以不允许输入特殊字符

    这里不允许输入如下字符: (像 ^&* 等)<br>

    <textarea rows=2 cols=20 name=comments onKeypress="if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode <

    65) || (event.keyCode > 90 && event.keyCode < 97)) event.returnValue = false;">

    13.只禁止空格输入

    onkeyup="value=value.replace(//s/g,'')"

    onkeydown="if(event.keyCode==32) return false"

    14.只能输入中文和英文:

    onkeyup="value=value.replace(/[^/a-zA-Z/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^

    /a-zA-Z/u4E00-/u9FA5]/g,''))"

    15.不允许输入特殊字符和空格:

    <input id="code" onkeypress="return ValidateSpecialCharacter();" onblur="validate(this)"/>

    16.不能为空
    <input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')">

    17.判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母

    /^([a-zA-z_]{1})([w]*)$/g.test(str)

  • 相关阅读:
    一道面试题:按照其描述要求用java语言实现快速排序
    Tomcat容器运行struts2+spring+mybatis架构的java web应用程序简单分析
    关于oracle存储过程的一些知识点
    多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量
    Chapter 5: Container
    统计文件夹下java代码行数的小程序--主要是学习任务队列的思想
    利用strut2标签自动生成form前端验证代码
    简单实现web单点登录
    Chapter 4: Tomcat Default Connector
    [python] 格式化方法 format
  • 原文地址:https://www.cnblogs.com/suvllian/p/5544363.html
Copyright © 2020-2023  润新知