js & regex & var & highlight


let key = `ali`.toLocaleUpperCase();
let name = "阿里云计算有限公司"; const getHighlightOthers = (name = ``, type = `prefix`) => {
let result = ``;
let prefix = 0;
let suffix = 0;
if (name && name.length) {
if (type === `prefix`) {
prefix = name.toLocaleUpperCase().indexOf(key);
if(prefix > 0) {
result = name.substr(0, prefix);
}
} else {
suffix = name.toLocaleUpperCase().lastIndexOf(key);
if(suffix > 0) {
result = name.substr(key.length);
} else {
result = name;
}
}
}
console.log(`result =`, result);
return result;
};
const getHighlightKeyword = (name = ``) => {
// null
let result = ``;
let prefix = 0;
if (name && name.length) {
prefix = name.toLocaleUpperCase().indexOf(key);
if(prefix > 0) {
result = name.substr(prefix, key.length);
}
}
console.log(`result =`, result);
return result;
}; getHighlightOthers(name, `prefix`);
getHighlightKeyword(name);
getHighlightOthers(name, `suffix`);

https://jscomplete.com/playground

bug

still bug


let key = `ali`.toLocaleUpperCase();
let name = "阿里云计算有限公司 alibaba"; const getHighlightOthers = (names = ``, type = `prefix`) => {
let name = names;
let result = ``;
let prefix = 0;
let suffix = 0;
if (name && name.length) {
if (type === `prefix`) {
prefix = name.toLocaleUpperCase().indexOf(key);
if(prefix > 0) {
result = name.substr(0, prefix);
}
} else {
suffix = name.toLocaleUpperCase().indexOf(key);
if(suffix > 0) {
// result = name.substr(key.length);
result = name.substr(suffix + key.length);
} else {
result = name;
}
}
}
console.log(`result =`, result, type);
return result;
};
const getHighlightKeyword = (name = ``) => {
// null
let result = ``;
let prefix = 0;
if (name && name.length) {
prefix = name.toLocaleUpperCase().indexOf(key);
if(prefix > 0) {
result = name.substr(prefix, key.length);
}
}
console.log(`result =`, result);
return result;
}; getHighlightOthers(name, `prefix`);
getHighlightKeyword(name);
getHighlightOthers(name, `suffix`);

zero bug

OK


let key = `ali`.toLocaleUpperCase();
// let name = "阿里云计算有限公司 alibaba";
let name = "AliOS" const getHighlightOthers = (names = ``, type = `prefix`) => {
let name = names;
let result = ``;
let prefix = 0;
let suffix = 0;
if (name && name.length) {
if (type === `prefix`) {
prefix = name.toLocaleUpperCase().indexOf(key);
if(prefix >= 0) {
result = name.substr(0, prefix);
}
} else {
suffix = name.toLocaleUpperCase().indexOf(key);
if(suffix >= 0) {
result = name.substr(suffix + key.length);
} else {
result = name;
}
}
}
console.log(`result =`, result, type);
return result;
};
const getHighlightKeyword = (name = ``) => {
// null
let result = ``;
let prefix = 0;
if (name && name.length) {
prefix = name.toLocaleUpperCase().indexOf(key);
if(prefix >= 0) {
result = name.substr(prefix, key.length);
}
}
console.log(`result =`, result);
return result;
}; getHighlightOthers(name, `prefix`);
getHighlightKeyword(name);
getHighlightOthers(name, `suffix`);


js & regex & var & highlight的更多相关文章

  1. js regex variable & Set, Map

    js regex variable & Set, Map regex, variable, Set, Map, 交集, 差集, 并集, https://stackoverflow.com/qu ...

  2. JS全局变量VAR和THIS

    (注意)JS全局变量VAR和THIS 很多人都觉得在javascript声明一个变量,加var和不加var没有什么区别,实际上是一个错误的观点,如果在函数外面,也就是说在window区域加不加var确 ...

  3. js中var的有或无--重复声明和以后的声明

    js中var的有或无--重复声明和以后的声明 使用var语句多次声明一个变量不仅是合法的,而且也不会造成任何错误. 如果重复使用的一个声明有一个初始值,那么它担当的不过是一个赋值语句的角色. 如果重复 ...

  4. JS全局变量VAR和THIS--在函数内部,加var是局部变量,不加是全局变量

    JS全局变量VAR和THIS 2011-05-23 21:43 很多人都觉得在JavaScript声明一个变量,加var和不加var没有什么区别,实际上是一个错误的观点,如果在函数外面,也就是说在wi ...

  5. 浅谈JS中 var let const 变量声明

    浅谈JS中 var let const 变量声明 用var来声明变量会出现的问题: 1. 允许重复的变量声明:导致数据被覆盖 2. 变量提升:怪异的数据访问.闭包问题 3. 全局变量挂载到全局对象:全 ...

  6. 【前端开发】】js中var写和不写的区别

    js中var用与不用的区别 Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的.可以正常运行的代码并不代表是合适的代码. v ...

  7. js中,var 修饰变量名和不修饰的区别

    js中 允许在定义变量的时候 不加var 修饰符.js会在当前作用域下寻找上下文是否定义了此变量, 如果没有找到则会为这个变量分配内存.当且将其视为window的成员. 也就是全局变量. 如果加了va ...

  8. js笔记——js里var与变量提升

    var是否可以省略 一般情况下,是可以省略var的,但有两点值得注意: 1.var a=1 与 a=1 ,这两条语句一般情况下作用是一样的.但是前者不能用delete删除.不过,绝大多数情况下,这种差 ...

  9. js中var 笔记

    js中声明变量会用到Var; 1,var a;声明一个变量a,此时输出a,会显示undefined:因为此时的a未定义: 2, var a=0;和b=0;有什么区别呢? 当声明一个全局变量时,实际是定 ...

随机推荐

  1. 简单makefile

    https://www.cnblogs.com/prettyshuang/p/5552328.html#_label0

  2. PyPy CPython C++ connects programs written in C and C++ with a variety of high-level programming languages

    PyPy 为什么会比 CPython 还要快? - 知乎 https://www.zhihu.com/question/19588346/answer/131977984 有个名词在现有的回答下面都没 ...

  3. LOJ10043

    题目描述 原题来自:HNOI 2002 Tiger 最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger 拿出了公司的账本,账本上记录了公司成 ...

  4. Kepware软件基本操作及使用Java Utgard实现OPC通信

    一.环境搭建(基于win10 64位专业版) 1.Kepware 的下载.安装及使用 https://www.cnblogs.com/ioufev/p/9366877.html 2.重要:OPC 和 ...

  5. Python3爬取猫眼电影信息

    Python3爬取猫眼电影信息 import json import requests from requests.exceptions import RequestException import ...

  6. login shell 和 non-login shell 的相关问题

    问题:通过su命令切换用户并没有进入该用户的shell环境.这是为什么?      要解决这个问题,我们必须清楚用login shell 和non-login shell的区别.   login sh ...

  7. centos6.5安装KVM,并在KVM中安装虚拟6.5系统

    =============================环境搭建================================================== 1.检查CPU信息 KVM 需要 ...

  8. Linux忽略大小写的查找技巧(转)

    1.vim 中的查找 Linux 下 vim搜索文件内容时加上 \c 参数可以忽略搜索字符的大小写. 比如用vim 搜索文件中的 China 时 可用 :/china\c 2. find 查找 Lin ...

  9. IP路由__动态路由

    1.使用协议来查找网络并更新路由表的配置,就是动态路由.它比使用静态或默认路由方便,但它需要一定的路由器CPU处理时间和网络链接带宽.路由协议定义了路由器与相邻路由器通信时所使用的一组规则. 在互联网 ...

  10. COS数据处理WebP压缩 | 减少70%图像大小

    当前网络中,图片仍是占用流量较大的一部分,在网站的视觉效果和加载速度之间,我们始终面临着两难选择. 一个网站的内容,不仅仅只有文字,图片.动图.视频等众多元素都在帮助用户从我们的网站获取更多的信息,当 ...