angular - 如何以角度检测 Unicode 字符 u+21b5?
问题描述
解决方案
正则 indexOf 只接受一个字符串参数,没有正则表达式。
const arr = ["Title", "First", "Last", "Email", "↵"];
arr.indexOf('\u21b5'); // 4
要使用正则表达式,您必须使用该find
方法。请注意,要让 Java-/Typescript 解析正则表达式中的 unicode 字符,您需要使用u
标志 -另请参阅this,取自此答案。
const char = arr.find(item => /\u{21b5}/u.test(item));
if (char) {
result = arr.indexOf(char); // 4
}
您还可以编写一个自定义的启用 RegEx 的 indexOf 函数:
function regExIndexOf(array: string[], term: RegExp, start = 0): number {
let result = -1;
array.forEach((item, index) => {
if (result === -1 && index >= start && term.test(item)) {
result = index;
}
});
return result;
}
regExIndexOf(["Title", "First", "Last", "Email", "↵"], new RegExp('Title')); // 0
regExIndexOf(["Title", "First", "Last", "Email", "↵"], new RegExp('Title'), 1); // -1
regExIndexOf(["Title", "First", "Last", "Email", "↵"], new RegExp('\u{21b5}', 'u')); //4
推荐阅读
- javascript - 将方法的参数声明为接口类型,并将不相关的对象传递给它
- sql - 如何使用 regexp_substr 提取包名
- javascript - 例如,如果有人试图复制粘贴文本,我如何只允许数字输入做出反应
- python - 使用 Django Channels 向多个组发送消息
- java - 我无法解决错误:找不到资源 drawable/abc (aka com.example.myapplication:drawable/abc)
- django-rest-framework - 如何从 GET 请求中获取 JSON 数据(正文应用程序/json)?
- performance - 先进先出库存(FIFO)公式计算很慢
- javascript - 为什么浏览器同步与 gulp 不起作用
- android - 无法使用 onSaveInstanceState 保存片段状态
- python - 如果扩展是单线程的,是否需要 Python GIL