js 字符串截取,截取指定字符前面/后面的字符串

一个符号截取:

let str = 'hello, how are you doing? username!'
// 截取 ? 前面的字符串:
let before1 = str.substring(0,str.lastIndexOf("?")) // 不包含 ?
console.log(before1,'before1---------------'); // hello, how are you doing 

let before2 = str.substring(0,str.lastIndexOf("?") + 1) // 包含 ?
console.log(before2,'before2---------------'); // hello, how are you doing?

// 截取 ? 后面的字符串:
let after1 = str.substring(str.lastIndexOf("?") + 1) // 不包含 ?
console.log(after1,'after1-----------------'); // username!

let after2 = str.substring(str.lastIndexOf("?")) // 包含 ?
console.log(after2,'after2-----------------'); // ? username!

多个相同符号截取:

let str = 'hello? how are you doing? username!'
// 截取第一个 ? 前面的字符串
let index1 = str.indexOf("?")
let string1 = str.substring(0, index1); // 不包含 ?
console.log(string1,'string1------') // hello

let string11 = str.substring(0, index1 + 1); // 包含 ?
console.log(string11,'string11------') // hello?

// 截取第一个 ? 后面的字符串
let index2 = str.indexOf("?")
let string2 = str.substring(index2 + 1, str.length); // 不包含 ?
console.log(string2,'string2------') //  how are you doing? username!

let string22 = str.substring(index2, str.length); // 包含 ?
console.log(string22,'string22------') // ? how are you doing? username!

//截取最后一个 ? 前面的字符串
let index3 = str.lastIndexOf("?")
let string3 = str.substring(0, index3); // 不包含 ?
console.log(string3,'string3---------') // hello? how are you doing 

let string33 = str.substring(0, index3 + 1); // 包含 ?
console.log(string33,'string33---------') // hello? how are you doing?

//截取最后一个 ? 后面的字符串
let index4 = str.lastIndexOf("?")
let string4 = str.substring(index4 + 1, str.length); // 不包含 ?
console.log(string4,'string4----------') //  username!

let string44 = str.substring(index4, str.length); // 包含 ?
console.log(string44,'string44----------') //  ? username!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/598980.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

充电宝哪个牌子好?比较好用充电宝牌子,这些品牌别错过

作为一个资深的手机控,深知手机对于现代人的重要性。从早到晚,无论是点外卖、看剧还是处理各种事务,手机几乎成了我生活的必需品。然而,手机电量的问题总是让人头疼。在家时,找个插座充电自然不成问题,但出…

论文查重率高,有什么办法降重吗?推荐几个ai降重工具

现在大部分学校已经进入到论文查重降重的阶段了。如果查重率居高不下,延毕的威胁可能就在眼前。对于即将告别校园的学子们,这无疑是个噩梦。四年磨一剑,谁也不想在最后关头功亏一篑。 查重率过高,无非以下两种原因。要么是作为“…

论文查重率高,有什么办法降重吗?推荐笔灵AI

现在大部分学校已经进入到论文查重降重的阶段了。如果查重率居高不下,延毕的威胁可能就在眼前。对于即将告别校园的学子们,这无疑是个噩梦。四年磨一剑,谁也不想在最后关头功亏一篑。 查重率过高,无非以下两种原因。要么是作为“…

超详细——集成学习——Adaboost实现多分类——附代码

资料参考 1.【集成学习】boosting与bagging_哔哩哔哩_bilibili 集成学习——boosting与bagging 强学习器:效果好,模型复杂 弱学习器:效果不是很好,模型简单 优点 集成学习通过将多个学习器进行结合,常可获得比单一…

程序员的实用神器:助力软件开发的利器 ️

程序员的实用神器:助力软件开发的利器 🛠️ 程序员的实用神器:助力软件开发的利器 🛠️引言摘要自动化测试工具:保障代码质量的利剑 🗡️编写高效测试用例 持续集成/持续部署工具:加速交付的利器…

MYSQL数据目录结构上篇-表在文件系统中表示

前言感悟:我个人是比较不喜欢只会用,不太懂为什么的这么用,而且有的时候很多官方术 语让人难以读懂, 这里我会用比较大白话的方式,让我自己也能让网友们更加理解,如果书写哪里有误,欢迎大家指出((,,•ω•)ノ"(っω•`。)) 从入门开始啦推荐一个学习mysql的视频…

营销5.0时代,企业的痛如何解?

进入营销5.0阶段之后,许多企业都需解决连接客户效能低下的问题。针对这个问题,产品经理、软件开发公司包括个人开发者,要怎么找到有效的“解药”? 营销不仅每年都在变化,甚至每天都在变化。 ——现代营销学之父&…

我独自升级崛起下载方法分享 下载教程

《我独自升级:崛起》这款精彩绝伦的动作角色扮演游戏,灵感来源于大热网络漫画,让玩家亲自踏上主角程肖宇的征途,从觉醒初阶到实力飞跃,每一步成长都扣人心弦。值得注意的是,尽管全球正式发布日期定在了五月…

Linux下GraspNet复现流程

Linux,Ubuntu中GraspNet复现流程 文章目录 Linux,Ubuntu中GraspNet复现流程1.安装cuda和cudnn2.安装pytorch3.编译graspnetAPIReference 🚀非常重要的环境配置🚀 ubuntu 20.04cuda 11.0.1cudnn v8.9.7python 3.8.19pytorch 1.7.0…

PADS使用网表导入layout和使用ECO to PCB有什么不同?

网表导入总是不成功,先用ECO更新过去了

vue2结合element-ui实现TreeSelect 树选择功能

需求背景 在日常开发中,我们会遇见很多不同的业务需求。如果让你用element-ui实现一个 tree-select 组件,你会怎么做? 这个组件在 element-plus 中是有这个组件存在的,但是在 element-ui 中是没有的。 可能你会直接使用 elemen…

调用nvprof报错: No kernels were profiled. No API activities were profiled.

调用nvprof报错 1 nvprof介绍 nvprof 是 NVIDIA 提供的一款用于分析 CUDA 应用程序性能的命令行性能分析器。CUDA 是一种并行计算平台和编程模型,允许开发人员利用 NVIDIA GPU 进行通用处理。 nvprof 帮助开发人员分析其 CUDA 应用程序的性能,提供各种…

以gitee为例的git入门使用指北

安装git 在linux中我们首先需要使用 sudo apt install git来下载git 在windows中可以下载msysGit 链接:https://git-scm.com/download/win gitee准备 申请账号 建立仓库 ​ 点击新建仓库 这里一般是私有库,点击创建,这时你就拥有一个线上…

Freeswitch-mod开发

文章目录 一、Freeswitch-mod开发1.1 介绍1.2 实战1.2.1 新建一个mymod.c或者mymod.cpp1.2.2 新建一个Makefile1.2.3 编译 二、Freeswitch-mod-自定义Dialplan模块2.1 介绍2.2 实战2.2.1 改造mymod.c(代码是完整的,自己做区别看一下)2.2.2 编…

小白入门:创建一个SpringBoot项目

前言 我们在创建SpringBoot项目时候,会出现不确定和报错的情况很多,大家可以按照我的做法来简单创建一个SpringBoot项目 1.环境配置 下载安装并配置jdk1.8下载apache mavenidea软件 2.开始创建项目 Server URL:初始是start.spring.io,我…

ComfyUI中的图像稀释处理

用下面的节点对图片进行稀释处理,如下 为0表示不变,我设置大一点,设置为0.5看看,如下 图像就暗淡了一些,但是还是有一些彩色的,相当于把它放在水里浸泡了一样,掉色了,这就是稀释&…

美国访问学者J1签证申请,这些关键事项一定要注意!

美国访问学者准备踏上学术探索之旅,申请J1签证是决定性的一步。以下是美国J1签证申请的一些关键注意事项,帮助你顺利通过签证流程: 1、签证类型:确认J-1签证是适合您访问学者身份的正确签证类型。 2、DS-2019表:在申…

2024------MySQL数据库基础知识点总结

-- 最好的选择不是最明智的,而是最勇敢的,最能体现我们真实意愿的选择。 MySQL数据库基础知识点总结 一、概念 数据库:DataBase,简称DB。按照一定格式存储数据的一些文件的组合顾名思义: 存储数据的仓库,实际上就是一…

工业光源环形系列一高均匀条形光源特点

产品特点 ◆可以根据检测需求随意调整照射角度: ◆可以根据检测需求选择光源颜色: ◆多个条形光源可以自由组合: ◆使用贴片灯珠,均匀性更好。

ICDE2024 |VDTuner:向量数据库自动调优技术

在CodeFuse接入实际业务的过程中,大模型的推理成本以及生成内容的准确性是产品规模落地的两个核心考量因素。为了降低推理成本,我们研发了CodeFuse-ModelCache语义缓存加速功能,通过引入Cache机制,缓存已经计算的结果,…
最新文章