如何使用正则表达式进行Unicode特殊字符的匹配?

2026-04-30 00:137阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1019个文字,预计阅读时间需要5分钟。

如何使用正则表达式进行Unicode特殊字符的匹配?

首先声明,本文代码均在ES6环境下运行。对于ES5环境,部分代码需要修改后才能执行。虽然本文没有涉及到太多ES6的新特性,但由于V8引擎对u修饰符不支持,最终的实现基本是基于ES5的知识编写的。以下是具体实现:

首先声明,本文所有的代码都是在 ES6 下面运行,ES5需要修改之后才能运行,但是本文没有涉及到太多的ES6新特性,而且由于v8对u修饰符不支持,最后的实现也基本是用ES5的知识写的代码。

最初我只是想记录下正则表达式用unicode的方式来匹配特殊字符,写着写着发现 v8 对 u 修饰符的不支持,又转而去研究怎么转换字符串到utf-16的格式,在研究怎么转换的过程中发现ES5的正则对 unicode 编码单元 > 0x10000 的字符串不支持,再转而去实现了一遍对大于 0x10000 的字符串的转换,特此记录。

之前有遇到过一个实用正则表达式匹配特殊字符的需求,例如一段文本 'ab*cd$你好我也好]\nseg$me*ntfault\nhello,world' ,用户可以选择用 * 或者 $ 来分割字符串。

在javascript中, $ 和 * 都是预定义的特殊字符,不能直接写在正则表达式中,而需要转义,写成 /\$/ 或者 /\*/ 。

阅读全文

本文共计1019个文字,预计阅读时间需要5分钟。

如何使用正则表达式进行Unicode特殊字符的匹配?

首先声明,本文代码均在ES6环境下运行。对于ES5环境,部分代码需要修改后才能执行。虽然本文没有涉及到太多ES6的新特性,但由于V8引擎对u修饰符不支持,最终的实现基本是基于ES5的知识编写的。以下是具体实现:

首先声明,本文所有的代码都是在 ES6 下面运行,ES5需要修改之后才能运行,但是本文没有涉及到太多的ES6新特性,而且由于v8对u修饰符不支持,最后的实现也基本是用ES5的知识写的代码。

最初我只是想记录下正则表达式用unicode的方式来匹配特殊字符,写着写着发现 v8 对 u 修饰符的不支持,又转而去研究怎么转换字符串到utf-16的格式,在研究怎么转换的过程中发现ES5的正则对 unicode 编码单元 > 0x10000 的字符串不支持,再转而去实现了一遍对大于 0x10000 的字符串的转换,特此记录。

之前有遇到过一个实用正则表达式匹配特殊字符的需求,例如一段文本 'ab*cd$你好我也好]\nseg$me*ntfault\nhello,world' ,用户可以选择用 * 或者 $ 来分割字符串。

在javascript中, $ 和 * 都是预定义的特殊字符,不能直接写在正则表达式中,而需要转义,写成 /\$/ 或者 /\*/ 。

阅读全文