javascript 正则表达式

    xiaoxiao2021-03-25  85

    1.字符串带的正则表达式相关的方法

    1-1.search()

    搜索符合指定正则表达式在目标字符串中的位置

    str.search('hello'); //str字符串中查找search字符串,成功返回位置,否则返回-1 str.search(/hello/); //str中查找符合正则表达式/hello/的字符串位置 str.search(/hello/g); //全局 str.search(/hellO/i); //忽略大小写 str.search(/hellO/m); //多行匹配

    1-2.match()

    搜索指定正则表达式在目标字符串中的字符串,返回的不仅仅是位置

    str.match("hello"); //匹配成功返回一个位置信息的数组 str.match("Hello"); //匹配没成功,返回null str.match(\HELLO\i); //不区分大小写

    1-3.replace()

    str.replace(“world”,”jack”); //查找str中的world,并替换成jack,返回的是替换后的字符串 str.replace(/world/,”jack”); //同上

    1-5. split()

    根据正则表达式去分割相应的字符串,输入字符串,输出数组

    console.log(str.split(" ")); 以空格为分隔符分割str字符串,返回数组

    1-6.join()

    数组合并成字符串

    arrdata.join(","); 合并arrdata,并用,连接

    2.RegExp对象的方法

    2-1.test()

    和search的作用差不多,只不过使用的方法是相反的,并且返回的是yes或no

    /hello/.test(str); 有的话返回true,无的话返回false

    2-2.exec()

    和math的作用差不多,使用相反,效果一样

    /hello/.exec(str);在str中查找匹配/hello/的字符串,有的话返回对应的结果和index等信息,没有的话返回null

    3.模式匹配

    带方括号的[], ——– 范围

    [abc]: 查找在方括号中的任意一个字符; [^abc]: 查找不在方括号中的任意一个字符; [0-9][a-z]: 查找0-9中的任意一个数字加[a-z]中的任一字符的组合

    原字符 ——– 大范围

    . 任意单个字符(略略略,点点点) \w 字母数字下划线((word)低调的小写) \W 和\w是相反的(傲慢与偏见的大写) \d 数字((digit)低调的小写) \D 非数字(傲慢也偏见的大写) \s 空格(spache) \S 傲慢的大S

    高级匹配 ——– 修饰符

    n* n的个数大于等于0 n? n的个数大于等于0小于等于1 n+ n的个数大于等于1 n{233} n的个数等于233的字符串 n{1,233} n的个数大于等于1,小雨等于233的字符串 n{1,} n的格个数大于等于1 n$ 匹配以n结尾的字符串 ^n 匹配以n开头的字符串

    贪婪模式 —— (高级模式后面加?即可)

    4.常用正则表达式

    手机号: /(^1[3|4|5|7|8][0-9]{9}$)/ ip地址:/\d+\.\d+\.\d+\.\d+/g 域名:/http:\/\/[\w|.]+\w+/g 手机号码:/1[3|4|5|6|7|8][\d]{9}/g 匹配汉字:/[\u4e00-\u9fa5]/g 匹配邮箱:/\w{1,16}@\w{1,16}\.\w{1,8}/g

    5.备注

    5-1./g 表示该表达式将用来在输入字符串中查找所有可能的匹配,返回的结果可以是多个。如果不加/g最多只会匹配一个 5-2./i 表示匹配的时候不区分大小写 5-3./m 表示多行匹配,什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号
    转载请注明原文地址: https://ju.6miu.com/read-22399.html

    最新回复(0)