zoukankan      html  css  js  c++  java
  • 关于js的正则插件xregexp-all.js 基本说明,支持全部21位全部unicode,全球语言

    目的:匹配全球语言标点符号替换为空

     1 //github:  https://github.com/yanglilong127/xregexp
     2 // 官网:http://xregexp.com/api/
     3 //XRegExp(pattern, [flags])
     4 /**
     5 标志的任意组合。
     6 本机标志:
     7 g - 全球
     8 i - 忽略大小写
     9 m - 多线锚
    10 u - unicode(ES6)
    11 y - 粘性(Firefox 3 +,ES6)
    12 其他XRegExp标志:
    13 n - 明确的捕获
    14 s - 点匹配所有(又名单行)
    15 x - 自由间距和行注释(又名扩展)
    16 A - astral(需要Unicode Base插件)
    17  **/
    18 // 使用了'x'修饰符,所以忽略空格且支持行注释
    19 //忽略空格指的是正则中的空格被忽略
    20 //(?<name>…)这种写法即命名的捕获组
    21 // #...为行注释
    22 const date = XRegExp(
    23     `(?<year>  [0-9]{4} ) -?  # year
    24      (?<month> [0-9]{2} ) -?  # month
    25      (?<day>   [0-9]{2} )     # day`, 'x');
    26  
    27 let match = XRegExp.exec('2017-02-22', date);
    28 console.log(match)  //是一个对象
    29 let format_date=XRegExp.replace('2017-02-22', date, '$<month>/$<day>/$<year>');
    30 console.log(format_date)// -> '02/22/2017'
    31 
    32 console.log(date.test('2017-02-22')) //ture
    33 
    34 
    35 //匹配链方法matchChain
    36 //匹配链方法可以从之前的匹配结果中调用下一个正则继续匹配,就像从一个大范围中使用不同的正则不断筛选出你要的数据。
    37 //它的语法是XRegExp.matchChain(str, chain)
    38 //基本用法:抽取每个<b>标记包裹的数字
    39 //(?is)是XRegExp中修饰符前置的语法,它等同于在正则后加修饰符i s
    40 XRegExp.matchChain('1 <b>2</b> 3 <b>4 a 56</b>', [
    41   XRegExp('(?is)<b>.*?</b>'),
    42   /d+/
    43 ]);
    44 // -> ['2', '4', '56']
    45 
    46 
    47 //所有Unicode令牌都可以使用P{…}或反转p{^…}。令牌名称不区分大小写,任何空格,连字符和下划线都将被忽略。您可以省略单个字母的标记名称的大括号。
    48 
    49 //测试Unicode类别L(Letter),单词    ^表示开头 $表示结尾
    50 var unicodeWord = XRegExp('^\p{L}+$');  //名牌名称L外面的{}可以省略
    51 console.log(unicodeWord.test('Русский')) //  - > true 
    52 console.log(unicodeWord.test('日本语倒萨大大缩短dssd')) ; //  - > true 
    53 console.log(unicodeWord.test('العربية')) ; //  - > true 
    54 console.log(unicodeWord.test(',')) ; //  - > false
    55 //小写单词令牌 Lowercase_Letter
    56 console.log('小写单词:',XRegExp('^\p{Lowercase_Letter}+$').test('vsFdffs'))//false
    57 
    58 //令牌名称Sc:货币符号  N:数字
    59 var unicodeWord = XRegExp('^\p{Sc}+\p{N}*$');
    60 console.log(unicodeWord.test('¥$')) //  - > true 
    61 console.log('货币和数字:',unicodeWord.test('¥$12①②③⑴⑵⑶ⅠⅡⅢ'))//true 
    62 
    63 //令牌名称P:标点符号
    64 var unicodeWord = XRegExp('\p{P}+');
    65 var biaodian=',,。!¡¿-.\'
    66 console.log(unicodeWord.test(biaodian)) //  - > true 
    67 var str='我是,,bu*-rt。!¡¿-.\-请多指教.﹋﹌︴111'
    68 //匹配全部标点符号并替换为空
    69 console.log(XRegExp.replace(str, XRegExp('\p{P}+','g'), (match)=>{
    70     //console.log(match)
    71     return ''
    72 }));
    73 
    74 console.log(XRegExp.replace(str, XRegExp('\p{P}?\p{N}?','g'), (match)=>{
    75     //console.log(match)
    76     return ''
    77 }));
    78 
    79 //小写字母
    80 console.log(XRegExp('^\p{Lowercase}+$','g').test('fadsaw')) //  - > true 
    81 //大写字母
    82 console.log(XRegExp('^\p{Uppercase}+$','g').test('CFFSA')) //  - > true 
  • 相关阅读:
    android的Fragment
    c#接口深入一步探究其作用,适合新人了解
    浅谈c#接口的问题,适合新手来了解
    再谈“我是怎么招聘程序员的”(下)转
    再谈“我是怎么招聘程序员的”(上)转
    关于如何写出优秀的代码(转)
    winserver服务器安全部署详细文档
    VS高效的调试技巧
    常用正则表达式(转自月光博客)
    JavaScript数组方法的兼容性写法 汇总:indexOf()、forEach()、map()、filter()、some()、every()
  • 原文地址:https://www.cnblogs.com/burtyang/p/8317550.html
Copyright © 2011-2022 走看看