js与php的字符串操作(php学习笔记)

来源:转载

js与php的字符串操作(php学习笔记),有需要的朋友可以参考下。

1.双引号与单引号在js中并没有太大的区别,但是在php却有着很大的区别,在php中双引号可以解析php语法,然而单引号却不可以解析。

$a = 'zp';echo "$a is a student"; // zp is a studentecho '$a is a student'; // $a is a student

2.连接方式,js是”+”,php是”.”。

3.在字符串的长度问题上也有着很大的区别,js的字符串长度只是指字符串的长度,而php得字符串长度是指在内存中所占的字节数。例如:”华北电力大学保定”这个字符串的长度在js中就是8,在php中可能是16或者24(不同编码会导致占用不同的字节,一般UNIX平台是utf-8占3个字节,windows平台是GB2312是2个字节);

4.截取字符串方法substr(),这个基本上js和php非常相似,在指定的位置,截取指定的长度(但是php在截取中文时非常麻烦,最好应用substr()方法自定义一个函数)

var str = 'zp is a student';console.log(str.substr(0,2)); // zpconsole.log(str.substr(8)); // student
$str = 'zp is a student';echo substr($str,0,2); // zpecho substr($str,8); // student

对于英语和数字以及一些符号来说js和php的操作并没有什么差距,但是假如是中文的话将会有很大的区别。

var str = "周鹏是一个学生"console.log(str.substr(0,2)); // 周鹏console.log(str.substr(5)); // 学生// js就是这么简单就可以实现
$str = '周鹏是一个学生'; function newSubstr($str,$index,$length) { $preg = '/windows/i'; $judge = preg_match($preg,php_uname('s')); // php_uname('s');确定为何种操作系统,也可以用PHP_OS if ($judge) {return substr($str,$index,$length * 2); } else {return substr($str,$index,$length * 3); }}echo newSubstr($str,0,2); // 周鹏

5.分割字符串,原理相同,php中的是explode(),js中的是split(),两种语言全部返回的是一个数组。

6.php有一个格式化数字字符串的函数number_format(),这个函数的参数可以是1个,2个或者是4个,注意只有着三种传参的方式。
只有一个参数时->将数字四舍五入,只保留整数部分,且第三位数字会以逗号隔开;

$num = 1996.323;echo number_format($num); // 1996

2个参数时,第二个参数为保留的小数位数,这也是四舍五入

$num = 1996.326;echo number_format($num,2); // 1996.33

7.字符串替换,js的函数是replace(),php与两个函数str_ireplace(),substr_replace()

var str = 'zp is a student',newStr = str.replace(//s/g,'$');console.log(newStr); // zp$is$a$student
$content = '白领公寓,温馨街南行200米';$str = '白领公寓';echo str_ireplace($str,'你好公寓',$content); // 你好公寓,温馨街南行200米

str_ireplace()是不区分大小写的一个方法,与之对应的那是str_replace(),str_replace()区分大小写,这两个函数的第四个参数是一个可选参数,是获取执行替换的次数

$content = "zp is ZP";$str = "zp";echo str_ireplace($str, 'zx', $content); // zx is zxecho str_replace($str, 'zx', $content); // zx is ZP

substr_replace()函数有四个参数,第一个为需要操作的字符串,第二个为替换后的新字符串,第三个为起始位置,第四个为替换字符串长度,0表示插入

$content = "zp is ZP";$str = "zp";echo substr_replace($content, 'zx', 0, 2); // zx is ZP

8.php有trim()函数,作用是去掉字符串开头或者结尾的空格

$content = " @@zp is [email protected]@ ";echo trim($content); // @@zp is [email protected]@

与此对应php还有ltrim(),去掉左边的空格,rtrim(),去掉右边的空格。
js对trim()实现起来就比较复杂了,还要使用正则表达式来进行自定义trim函数

var str = ' |google| ';String.prototype.trim = function () { var pattern = /(^/s*)|(/s*$)/g; return this.replace(pattern,"");};console.log(str.trim());

9.检索字符串,php使用strstr()函数查找指定关键字,成功返回首次出现的位置到后者末尾的子字符串,失败返回false,然而js检索字符串的函数是indexOf()与lastIndexOf(),如果检测到则返回首次出现的索引值,未检测到则返回-1。
10.php含有检测子串出现的次数的函数substr_count(),然而js的需呀间接的来实现

var str = 'zp is a student';String.prototype.strCount = function () { return this.match(/s/g).length;};console.log(str.strCount()); // 2

11.php的比较字符串
按字节比较的两个函数:
strcmp(),区分大小写,
strcasecmp()不区分大小写,
PS:小写字母的ascii码大于大写字母的ascii码,所以相同的但是不同大小写的字母用strcmp()函数比较,若大写在前,小写在后,会返回-1;用strcasecmp()会返回0

按自然排序法进行字符串比较 strnatcmp(),自然排序法就是说,2小于10,而不是像计算机语言那样2大于10;

strncmp()函数用来比较字符串的前n个字符串

strncmp('zp is a person', 'zp is a student', 12); // -1

版权声明:本文为博主原创文章,未经博主允许不得转载。


分享给朋友:
您可能感兴趣的文章:
随机阅读: