首页 > 其他分享 >自制 js 的 trim、right、left、instrRev、instr、mid 函数

自制 js 的 trim、right、left、instrRev、instr、mid 函数

时间:2023-04-07 12:33:36浏览次数:44  
标签:trim function right return instr mid else var 字符串

//用惯了 VB 系列语法的 instr 和 mid 函数,在 js 里面处理字符串总是感觉束手束脚

//跟 Basic 语法比起来,其他语言的字符串处理函数的确非常不方便!!!因此,必须自己写个仿 Basic 语法的 javascript 的常用字符串处理函数库来用!!!

// 以下是经过多次修正,便于 js 处理字符串的函数

function trim(s){return s.replace(/(^\s*)|(\s*$)/g,"");} //清除字符串 s 前后英文空格
 
function revright(s,l){ //从 s 中从左侧取去除 l 长度右侧字符串的字符串
    var sl=len(s);
    return mid(s,1,sl-l);
}
 
function right(s,l){ //从 s 中从右侧取 l 长度的字符串
    var sl=len(s);
    return mid(s,sl-l+1,l);
}
function left(s,l){ //从 s 中从左侧取 l 长度的字符串
    return mid(s,1,l);
}
 
function instr(str,s){ //在 str 中查找字符串 s 第一次出现的位置,从左侧起计,起点为 1
    var dotn=str.indexOf(s);
    if(dotn<0){return 0;}else{return (dotn*1+1);}
}
 
function instrRev(str,s){ //在 str 中从右侧起查找字符串 s 第一次出现的位置,位置从左侧起计,起点为 1
    var dotn=str.lastIndexOf(s);
    if(dotn<0){return 0;}else{return (dotn*1+1);}
}
function len(s){ //返回字符串 s 的长度,数字则以十进制长度计
    if(isUndefined(s)){return 0;}//参数不足
    if(isNaN(s)){//非数字isNaN
        var sln=s.length;
    }else{
        //数值转字符
        var str=s.toString(10);
        var sln=str.length;
    }
    return sln;
}
function mid(str,s,l){  //从字符串 str 中从 s 位置起取 l 长度的字符串,起点为 1,忽略参数 l 则取自 s 位置起的后面全部字符串
    var outstr='';
    if(isUndefined(s)){return '';}//参数不足
    if(isUndefined(str)){return '';}//参数不足
    var sln=str.length;
    if(isNaN(s)){return '';}//参数非法
    //console.log(isNaN(s));
    s=s*1;
    if(isUndefined(l)){ //非数字isNaN        
        if(s>sln ){ //起点大于长度
            return '';
        }else{
            if((s-1)>sln ){//空
                return '';
            }else{
                for(var i=s;i<sln+1;i++){ //没有长度信息,取到完
                    outstr+=str.charAt(i-1);//charAt从0计字符串,故要减一
                }        
                return outstr;
            }
        }    
    }else{
        if(isNaN(l)){ //非数字
            if(s>sln ){ //起点大于长度
                return '';
            }else{
                if((s-1)>sln ){//空console.log(sln);
                    return '';
                }else{
                    for(var i=s;i<sln+1;i++){ //没有长度信息,取到完
                        outstr+=str.charAt(i-1);//charAt从0计字符串,故要减一
                    }        
                    return outstr;
                }
            }
        }else{
            l=l*1;
            if(s>sln ){ //起点大于长度
                return '';
            }else{
                if((s+l-1)>sln ){//起点加长度减1大于长度,只取剩余字符,取到完
                    for(var i=s;i<sln+1;i++){
                        outstr+=str.charAt(i-1);//charAt从0计字符串,故要减一
                    }        
                    return outstr;
                }else{
                    for(var i=s;i<(s+l);i++){ //正常取法console.log(sln);
                        outstr+=str.charAt(i-1);//charAt从0计字符串,故要减一
                    }        
                    return outstr;
                }
            }
        }
    }
}
 
function isUndefined(value){   
    //获得undefined,保证它没有被重新赋值   
    var undefined = void(0);
    return value === undefined; 
} 

 

标签:trim,function,right,return,instr,mid,else,var,字符串
From: https://www.cnblogs.com/jessezappy/p/17295771.html

相关文章

  • 【论文笔记 - InstructPix2Pix】InstructPix2Pix: Learning to Follow Image Editing
    InstructPix2Pix和Pix2Pix是两码事。Pix2Pix使用的是GAN,而InstructPix2Pix使用的是Diffusion。这个名字的由来可能出于两个方面,一方面InstructPix2Pix允许在image-translation的时候引入文本Instruction,另一方面InstructPix2Pix和Pix2Pix一样使用了成对的数据进行训练。鉴于目前图......
  • python+playwright 学习-45 drag_to 拖拽操作
    前言按住元素从页面的一个位置拖动到另外一个位置,可以用drag_to()方法实现拖拽操作场景目标元素拖动到指定位置drag_to拖拽操作您可以使用locator.drag_to()执行拖放操作。此方法将:将鼠标悬停在要拖动的元素上。按鼠标左键。将鼠标移动到将接收放置的元素。松开鼠......
  • python+playwright 学习-44 过登录页面的滑块拼图验证码
    前言有些登录页面经常会遇到滑块验证码,滑块的操作思路基本都差不多,先确定缺口的位置,再滑动过去。一般在滑动过去的时候,会有人机识别机制,有时候你准确的滑动位置了,但不一定会解锁成功。滑块示例以下滑块为例需先计算出滑块的缺口位置,也就是我们需要滑动的距离计算缺口位置......
  • 利民(Thermalright)HR-10 2280 固态硬盘SSD散热器 - 我的硬件配置
    ......
  • playwright 使用日常知识点积累--不定期补充
    简介:Playwright是由微软公司2020年初发布的新一代自动化测试工具,相较于目前最常用的Selenium,它仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行。官网地址:Playwright|Playwright.NET一:Playwright安装及介绍Pl......
  • python+playwright 学习-43 Pyinstaller打包生成独立的可执行文件。
    前言playwright与Pyinstaller结合使用来创建独立的可执行文件。本地化安装有同学提到说想打成一个exe的独立包,但是执行playwrightinstall会默认把chromium,firefox和webkit三个浏览器安装到系统目录。这样打包的时候就找不到启动的浏览器文件。于是就想到把浏览器文件下......
  • java.lang.String中的trim()方法的…
    String.Trim()方法到底为我们做了什么,仅仅是去除字符串两端的空格吗?一直以为Trim()方法就是把字符串两端的空格字符给删去,其实我错了,而且错的比较离谱。首先我直接反编译String类,找到Trim()方法:publicstringTrim(){returnthis.TrimHelper(WhitespaceChars,2);}Trim......
  • [ABC273D] LRUD Instructions
    题目链接题解模拟题。观察题目,我们发现,无论问的是前/后/左/右,你都只会在一条直线上走,那对于这条直线,我们可以记录所有这条直线上的障碍物,然后找到距离当前点最近的障碍物,也就是说我们只能走到那个障碍物那块。虽然数据范围高达\(10^9\),但是\(n\le10^5\),所以用\(map\)套\(......
  • 软件测试|web自动化测试神器playwright教程(八)
    前言selenium中提供了一个seleniumIDE的工具用于脚本录制,我们通过插件市场安装之后,便可以将我们对浏览器页面的操作录制成脚本,并输出成java或Python等语言的脚本,我们可以通过生成的脚本再次回放我们的操作。作为一个比selenium更加强大的web自动化测试工具,当然也拥有录制的功能了,......
  • python+playwright 学习-42 离线安装 playwright 环境
    前言有些同学可能是在公司局域网办公,无法连到外网去在线下载,本篇教大家在本地局域网部署好playwright环境playwright本地下载先找个有网络的电脑,下载playwright,不要......