使用正则表达式提取文字并过滤中间的字符

假设有字符串:var str = '我是中国人</span>我爱中国';

我们可以使用以下代码提取字符串并去掉HTML标签:

var result = str.replace(/[<][/]?\\w+[>]/g, '');

解析:此代码使用replace方法及正则表达式来去除不必要的标签。

使用正则表达式提取文字并过滤中间的字符,关于Java和JavaScript的区别

正则表达式解释:

  • /内容/:表示这是一个正则表达式对象。
  • [<]:表示匹配开头的尖括号。
  • [/]?:表示可以选择性匹配结束符号,目的是匹配开始标签和结束标签。
  • \w+:匹配字母和数字,若需匹配其他字符,建议使用.*
  • [>]:匹配结束尖括号。
  • /内容/g:加上g参数代表全局匹配。

关于全局匹配的说明:

  1. 对于exec方法,若未加g,仅返回第一个匹配,若加上g,则可以依次获取所有匹配。
  2. 对于test方法,加不加g没有区别。
  3. 对于match方法,未加g时只返回第一个匹配,加入g则返回所有匹配。
  4. 对于replace方法,未加g则只替换第一个匹配,加上g则替换所有匹配。
  5. 对于splitsearch方法,加不加g没有区别。

提取特定格式的字符串

若字符串为:{dfghjkl},{中国人,321312,312321},{312312,321}

可以使用以下代码进行提取:

var m = str.match(/\{[^}]*\}/gm); // m instanceof Array or m===null

console.log(m);

使用正则表达式提取文字并过滤中间的字符,关于Java和JavaScript的区别

验证字符串是否包含汉字

使用以下代码:

使用正则表达式提取文字并过滤中间的字符,关于Java和JavaScript的区别

    
    <script language="javascript">
    var zfc = "中国人jiancha";
    if(/[\\u4E00-\\u9FA5]/.test(zfc)) {
        alert("有汉字");
    } else {
        alert("无汉字");
    }
    </script>
    
    

著名中国程序员

  • Corrinne Yu - 被誉为最牛的女游戏程序员。
  • 陈盈豪 - CIH病毒的作者,极具天赋。
  • 龚蔚 - 网络安全先锋,红客运动的发起者。
  • 求伯君 - 金山WPS的创始人。
  • 张宴 - 消息队列服务httpsqs作者。
  • Axel Lin, yinghai lu, herber xu - 在Linux内核贡献上有突出表现的程序员。

关于Java和JavaScript的区别

Java和JavaScript是两种截然不同的编程语言,JavaScript并不是sun公司的产品。

浏览器中的JavaScript代码常常引起安全提示,因为早期有不少恶意代码通过JavaScript发布,导致用户体验不佳。