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 相关文章推荐
网页自动刷新,不产生嗒嗒声的一个解决方法
Mar 27 Javascript
javascript 精粹笔记
May 09 Javascript
检测jQuery.js是否已加载的判断代码
May 20 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 Javascript
JavaScript变量的作用域全解析
Aug 14 Javascript
jQuery实现带玻璃流光质感的手风琴特效
Nov 20 Javascript
浅谈JavaScript的全局变量与局部变量
Jun 10 Javascript
js实现上传文件添加和删除文件选择框
Oct 24 Javascript
js编写选项卡效果
May 23 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
May 26 Javascript
Angular4学习教程之DOM属性绑定详解
Jan 04 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 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
PHP-redis中文文档介绍
2013/02/07 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
python读取各种文件数据方法解析
2018/12/29 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
东方红海科技面试题软件测试方面
2012/02/08 面试题
国外的一些J2EE面试题一
2012/10/13 面试题
护士实习自我鉴定
2013/10/22 职场文书
大专生自我评价
2014/01/28 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
生日庆典策划方案
2014/06/02 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL