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 相关文章推荐
javascript小数计算出现近似值的解决办法
Feb 06 Javascript
Event altKey,ctrlKey,shiftKey属性解析
Dec 18 Javascript
jquery自动填充勾选框即把勾选框打上true
Mar 24 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
Aug 05 Javascript
JavaScript核心语法总结(推荐)
Jun 02 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
Node.js批量给图片加水印的方法
Nov 15 Javascript
vue router自动判断左右翻页转场动画效果
Oct 10 Javascript
React Native react-navigation 导航使用详解
Dec 01 Javascript
详解Vue中localstorage和sessionstorage的使用
Dec 22 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
Aug 20 Javascript
Javascript 之封装(Package)
Sep 14 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
php compact 通过变量创建数组
2016/11/15 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
python框架django基础指南
2016/09/08 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
基于python调用psutil模块过程解析
2019/12/20 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
django迁移文件migrations的实现
2020/03/31 Python
CSS3 实现的缩略图悬停效果
2020/12/09 HTML / CSS
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
岗位竞聘演讲稿范文
2014/04/24 职场文书
学校交通安全责任书
2014/08/25 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
全新239军机修复记
2022/04/05 无线电
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python