substring和substr的区别

本文详细解释了JavaScript中用于截取字符串的两种方法:substring和substr,并通过实例演示了这两种方法的区别及其用法。

substring和subsrt都是获取指定位数 字符串的方法;

语法:

substring(start,end)/substring(one);

substr(start,end)/substr(one);

 

这两个方法,里面的参数可以是一个也可以是两个。

 

两个参数时,substring是获取从start位开始到end位之间的字符串,而substr是获取从start位开始后end位的字符串;(两种方法都包含start位的字符串,区别在于ubstring不包含end位的字符串,substr包含)

例:

var mystring="Hello world!";

substring(2,4);//输出“ll”

substr(2,4);//输出“llo ” (注意截取的字符串后有空格,从第二位开始截取,包空格共4个字符的字符串)

 

两个方法只有一个参数时,输出的结构都是一样的。

根据上面的例子,

substring(2);//输出:llo world!

substr(2);//同上

 

=========================于2020年5月更新============================

感谢网友提出的错误,已更正。好久没来博客,抱歉,之前的错误给大家造成了困扰。

如有错误敬请指正!

 

 

### SQL 中 SUBSTRING SUBSTR 函数的区别 #### 1. **定义与适用数据库** - 在 SQL 中,`SUBSTR` 主要用于 Oracle 数据库[^1],同时也被 MySQL 支持。 - `SUBSTRING` 则主要用于 SQL Server[^1],但也同样被 MySQL 所支持。 #### 2. **语法结构** - **`SUBSTR` 的语法**: ```sql SUBSTR(string, start_position, length) ``` - `string`: 待处理的字符串。 - `start_position`: 开始截取的位置。如果是正数,则从左向右计数;如果是负数,则从右向左计数[^5]。 - `length`: 可选参数,表示截取的字符数量。如果不提供该参数,则会一直截取到字符串末尾[^2]。 - **`SUBSTRING` 的语法**: ```sql SUBSTRING(string, start_position, length) ``` - `string`: 待处理的字符串。 - `start_position`: 开始截取的位置。必须是非负整数,从左向右计数[^5]。 - `length`: 必需参数,表示截取的字符数量。如果超出实际长度,则只截取至字符串末尾[^2]。 #### 3. **主要差异对比** ##### (1) **起始位置的支持** - `SUBSTR` 支持负数作为起始位置,这意味着可以从字符串的右侧开始计算位置。 - `SUBSTRING` 不支持负数作为起始位置,仅允许非负整数值。 ##### (2) **第二个参数的意义** - 在 `SUBSTR` 中,第二个参数代表的是要截取的字符数量(即长度),它是可选的[^5]。 - 在 `SUBSTRING` 中,第三个参数也是指明要截取的字符数量,但它是一个必需参数[^5]。 ##### (3) **跨平台兼容性** - `SUBSTR` 更常见于 Oracle 数据库环境,在 MySQL 中也存在但可能表现略有不同[^1]。 - `SUBSTRING` 是 SQL Server 的标准函数名称,并且也被广泛应用于 MySQL 等其他关系型数据库管理系统中[^1]。 #### 4. **实例演示** 以下是一些具体的例子来展示两者的行为: - 使用 `SUBSTR` 进行操作: ```sql SELECT SUBSTR('HelloWorld', 1); -- 返回 'HelloWorld' SELECT SUBSTR('HelloWorld', 6, 3); -- 返回 'Wor' SELECT SUBSTR('HelloWorld', -3, 2); -- 返回 'rl' (注意这里的负数) ``` - 使用 `SUBSTRING` 进行操作: ```sql SELECT SUBSTRING('HelloWorld', 1, 10); -- 返回 'HelloWorld' SELECT SUBSTRING('HelloWorld', 6, 3); -- 返回 'Wor' -- 下面这条语句会产生错误因为不允许负值 SELECT SUBSTRING('HelloWorld', -3, 2); ``` #### 5. **注意事项** 尽管某些情况下这两种函数看起来相似甚至互换可用,但由于其背后的实现细节以及所在的具体 DBMS 差异,建议依据所使用的具体数据库系统选择合适的函数以避免潜在问题。 --- ###
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值