JS PHP字符串截取函數(shù)實(shí)現(xiàn)原理解析
js有三個(gè):slice() substring() substr()
一般都用substr(start,length),第一個(gè)參數(shù)是開(kāi)始位置的下標(biāo) 必須,可以為負(fù)數(shù),下標(biāo)-1 是指字符串中最后一個(gè)字符,下標(biāo)-2 是指倒數(shù)第二個(gè)字符,以此類推;第二個(gè)參數(shù)是要截取子串的長(zhǎng)度 可選,截取的方向都是從左往右,不會(huì)改變。
截取出來(lái)的子串包含起始位置自己
PS:字符串的索引都從0開(kāi)始計(jì)起
. 空格都是字符
substring(from,until) slice(from,until)都是從一個(gè)索引截取到另一個(gè)索引,只有當(dāng)參數(shù)為負(fù)數(shù)時(shí),他們不一樣,需要強(qiáng)調(diào)的一點(diǎn):子串不包括“until”索引值的元素
substring(0) slice(0) slice()都是截取整個(gè)字符串,無(wú)意義
substring的from必寫(xiě)
php:
1.substr(源字符串,起始位置,[長(zhǎng)度])-截取字符串返回部分字符串
<?php$str ='phpddt.com';echo substr($str,2);//pddt.comecho substr($str,2,3);//pddecho substr($str,-2);//om 負(fù)數(shù)從結(jié)尾開(kāi)始取?>
但是當(dāng)你截取中文字符串的時(shí)候很容易出現(xiàn)亂碼,因?yàn)橐粋€(gè)漢字是兩個(gè)字節(jié),而一個(gè)英文字母是一個(gè)字節(jié)。解決辦法如下:
2.mb_substr(),使用方法和substr相同
不過(guò)要開(kāi)啟php.ini里面extension=php_mbstring.dll擴(kuò)展,不用擔(dān)心,一般的空間商都會(huì)開(kāi)啟這個(gè)擴(kuò)展的。
<?phpecho mb_substr('php點(diǎn)點(diǎn)通',1,3,'UTF-8');//hp點(diǎn)?>
代碼如下:
substr(string,start,length)
其中start的參數(shù) 正數(shù) - 在字符串的指定位置開(kāi)始 負(fù)數(shù) - 在從字符串結(jié)尾的指定位置開(kāi)始 0 - 在字符串中的第一個(gè)字符處開(kāi)始以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ThinkPHP5 通過(guò)ajax插入圖片并實(shí)時(shí)顯示(完整代碼)2. Python使用oslo.vmware管理ESXI虛擬機(jī)的示例參考3. Java構(gòu)建JDBC應(yīng)用程序的實(shí)例操作4. Express 框架中使用 EJS 模板引擎并結(jié)合 silly-datetime 庫(kù)進(jìn)行日期格式化的實(shí)現(xiàn)方法5. javascript設(shè)計(jì)模式 ? 建造者模式原理與應(yīng)用實(shí)例分析6. IntelliJ IDEA設(shè)置條件斷點(diǎn)的方法步驟7. 一篇文章帶你了解JavaScript-對(duì)象8. 解決Python paramiko 模塊遠(yuǎn)程執(zhí)行ssh 命令 nohup 不生效的問(wèn)題9. python flask框架快速入門(mén)10. Jsp中request的3個(gè)基礎(chǔ)實(shí)踐
