JS PHP字符串截取函数实现原理解析


Posted in Javascript onAugust 29, 2020

js有三个:slice() substring() substr()

一般都用substr(start,length),第一个参数是开始位置的下标 必须,可以为负数,下标-1 是指字符串中最后一个字符,下标-2 是指倒数第二个字符,以此类推;第二个参数是要截取子串的长度 可选,截取的方向都是从左往右,不会改变。

截取出来的子串包含起始位置自己

PS:字符串的索引都从0开始计起

. 空格都是字符

substring(from,until) slice(from,until)都是从一个索引截取到另一个索引,只有当参数为负数时,他们不一样,需要强调的一点:子串不包括“until”索引值的元素

substring(0) slice(0) slice()都是截取整个字符串,无意义

substring的from必写

php:

1.substr(源字符串,起始位置,[长度])-截取字符串返回部分字符串

<?php
$str ="phpddt.com";
echo substr($str,2);//pddt.com
echo substr($str,2,3);//pdd
echo substr($str,-2);//om 负数从结尾开始取
?>

但是当你截取中文字符串的时候很容易出现乱码,因为一个汉字是两个字节,而一个英文字母是一个字节。解决办法如下:

2.mb_substr(),使用方法和substr相同

不过要开启php.ini里面extension=php_mbstring.dll扩展,不用担心,一般的空间商都会开启这个扩展的。

<?php
echo mb_substr("php点点通",1,3,"UTF-8");//hp点
?>

代码如下:

substr(string,start,length)

  • 其中start的参数
  • 正数 - 在字符串的指定位置开始
  • 负数 - 在从字符串结尾的指定位置开始
  • 0 - 在字符串中的第一个字符处开始

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 学习第七课 扩展jQuery的功能 插件开发
May 17 Javascript
基于jQuery的message插件实现右下角弹出消息框
Jan 11 Javascript
jQuery 常见操作实现方式和常用函数方法总结
May 06 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
Sep 25 Javascript
JavaScript中的acos()方法使用详解
Jun 14 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
Sep 08 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
Feb 17 Javascript
js验证框架实现代码分享
May 18 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
Mar 09 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
Jul 30 Javascript
浅谈react路由传参的几种方式
Mar 23 Javascript
JS访问对象两种方式区别解析
Aug 29 #Javascript
js在HTML的三种引用方式详解
Aug 29 #Javascript
toString.call()通用的判断数据类型方法示例
Aug 28 #Javascript
你不知道的 TypeScript 高级类型(小结)
Aug 28 #Javascript
js和jquery判断数据类型的4种方法总结
Aug 28 #jQuery
Node在Controller层进行数据校验的过程详解
Aug 28 #Javascript
Postman无法正常返回结果问题解决
Aug 28 #Javascript
You might like
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
js图片处理示例代码
2014/05/12 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
Python简明入门教程
2015/08/04 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
python装饰器使用实例详解
2019/12/14 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
捷克厨房用品购物网站:Tescoma
2018/07/13 全球购物
设计总监岗位职责
2013/12/07 职场文书
韩国商务邀请函
2014/01/14 职场文书
九年级化学教学反思
2014/01/28 职场文书
经理助理岗位职责
2014/03/05 职场文书
单位承诺书格式
2014/05/21 职场文书
企业承诺书怎么写
2014/05/24 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
导游词之南京中山陵
2019/11/27 职场文书
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
Python采集股票数据并制作可视化柱状图
2022/04/04 Python