博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECMAScript6面对大于0xFFFF的Unicode字符如何正确返回长度
阅读量:4580 次
发布时间:2019-06-09

本文共 892 字,大约阅读时间需要 2 分钟。

一、match()

1.定义

match()方法用于检索字符串内指定(字符串或正则)的值,返回指定值的数组,若找不到,返回null。

2.语法

str.match(searchvalue)str.match(regexp)

3.示例

let str = 'abc-def-zxc';console.log(str.match('-')); // ["-", index: 3, input: "abc-def-zxc"]console.log(str.match(/[a-z]{3}/g)); // ["abc", "def", "zxc"]

4.注意

match()常常与正则标识g配合使用,若没有g则只匹配一次。

let str = 'abc-def-zxc';console.log(str.match(/[a-z]{3}/)); // ["abc", index: 0, input: "abc-def-zxc"]console.log(str.match(/[a-z]{3}/g)); // ["abc", "def", "zxc"]

二、使用match()方法判断大于0xFFFF的Unicode字符长度

正则标识u能识别码点大于0xFFFF的Unicode字符。

console.log(/^.$/.test('?')); // false 正常情况下?被当作两个字符console.log(/^.$/u.test('?')); // true

利用u这个特性可以用来验证判断大于0xFFFF的Unicode字符长度。

function getRealLength (str) {    let ret = str.match(/./gu);    return ret ? ret.length : 0;}let str = '???';console.log(str.length); // 6console.log(getRealLength(str)); // 3

转载于:https://www.cnblogs.com/mazey/p/8436420.html

你可能感兴趣的文章
.net图表之ECharts随笔04-散点图
查看>>
linux下时间的同步
查看>>
redis(七)---- SpringBoot和redis整合
查看>>
Apple Swift编程语言入门教程
查看>>
接口测试 dubbo 接口测试
查看>>
ORM表相关操作
查看>>
121. Best Time to Buy and Sell Stock【easy】
查看>>
运放输入相位补偿电容
查看>>
【转】<string> <string.h> <cstring>的区别
查看>>
Python基础:列表,元组和字典的基本操作
查看>>
各种奇技淫巧-持续更新
查看>>
扩展知识
查看>>
使用图形界面管理工具Navicat for MySQL连接Mysql数据库时提示错误:Can't connect to MySQL server (10060)...
查看>>
win10内嵌ubuntu中mysql配置总结
查看>>
CSS总结(三)—— 盒子模型(标准/IE下)
查看>>
html设置编码
查看>>
结构体
查看>>
用户服务的业务框架
查看>>
Python 字符串处理大全.
查看>>
window-linux 之间ftp文件互传
查看>>