首页技术substr和substring的区别? substr 的语法

substr和substring的区别? substr 的语法

编程之家2026-06-16924次浏览

大家好,今天小编来为大家解答substr和substring的区别这个问题, substr 的语法很多人还不知道,现在让我们一起来看看吧!

substr和substring的区别? substr 的语法

substring和substr有什么区别

js有2个截取字符串的函数,其定义如下:

substr(start,length)

substring(start,end)

substr是从起始点截取某个长度的字符串

而substring是截取2个位置之间的字符串

用了这么久js,今天才算明白如何截取字符串,以前都稀里糊涂的用,没注意到有2个函数

substr和substring的区别? substr 的语法

昨天晚上在写一个js的时候,本来我是要用substring的结果,在ultraedit的提示功能下

我也没有看就按了enter,最后运行的本文来源:考试大网时候发现和我设想的有差别。一看代码发现我把substring

给写成了substr了,所以才会出错的!其实他们的区别也很见简单

String.substr(N1,N2)这个就是我们常用的从指定的位置(N1)截取指定长度(N2)的字符串;

String.substring(N1,N2)这个就是我们常用的从考试大论坛指定的位置(N1)到指定的位置(N2)的字符串;

举个例子:

substr和substring的区别? substr 的语法

alert("123456789".substr(2,5))它显示的是"34567"

alert("123456789".substring(2,5))则显示的为"345"

String.substr(N1,N2)这个就是我们常用的从指定的位置(N1)截取指定长度(N2)的字符串;

String.substring(N1,N2)这个就有点特别了,它是先从N1,N2里找出一个较小的值,然后从字符串的开始位置算起,截取较小值位置和较大值位置之间的字符串,截取出来的字符串的长度为较大值与较小值之间的差。

JavaScript中substr和substring的区别

substring方法用于提取字符串中介于两个指定下标之间的字符

substring(start,end)

开始和结束的位置,从零开始的索引

参数描述

start必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject中的位置。

stop可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

返回值

一个新的字符串,该字符串值包含 stringObject的一个子字符串,其内容是从 start处到 stop-1处的所有字符,其长度为 stop减 start。

说明

substring方法返回的子串包括 start处的字符,但不包括 end处的字符。

如果 start与 end相等,那么该方法返回的就是一个空串(即长度为 0的字符串)。

如果 start比 end大,那么该方法在提取子串之前会先交换这两个参数。

如果 start或 end为负数,那么它将被替换为 0。

2.substr方法

定义和用法

substr方法用于返回一个从指定位置开始的指定长度的子字符串。

语法

stringObject.substr(start [, length ])

参数描述

start必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。

length可选。在返回的子字符串中应包括的字符个数。

说明

如果start为负数,则start=str.length+start。

如果 length为 0或负数,将返回一个空字符串。

如果没有指定该参数,则子字符串将延续到stringObject的最后。

举例:

var str="0123456789";

alert(str.substring(0));------------"0123456789"

alert(str.substring(5));------------"56789"

alert(str.substring(10));-----------""

alert(str.substring(12));-----------""

alert(str.substring(-5));-----------"0123456789"

alert(str.substring(-10));----------"0123456789"

alert(str.substring(-12));----------"0123456789"

alert(str.substring(0,5));----------"01234"

alert(str.substring(0,10));---------"0123456789"

alert(str.substring(0,12));---------"0123456789"

alert(str.substring(2,0));----------"01"

alert(str.substring(2,2));----------""

alert(str.substring(2,5));----------"234"

alert(str.substring(2,12));---------"23456789"

alert(str.substring(2,-2));---------"01"

alert(str.substring(-1,5));---------"01234"

alert(str.substring(-1,-5));--------""

alert(str.substr(0));---------------"0123456789"

alert(str.substr(5));---------------"56789"

alert(str.substr(10));--------------""

alert(str.substr(12));--------------""

alert(str.substr(-5));--------------"56789"

alert(str.substr(-10));-------------"0123456789"

alert(str.substr(-12));-------------"0123456789"

alert(str.substr(0,5));-------------"01234"

alert(str.substr(0,10));------------"0123456789"

alert(str.substr(0,12));------------"0123456789"

alert(str.substr(2,0));-------------""

alert(str.substr(2,2));-------------"23"

alert(str.substr(2,5));-------------"23456"

alert(str.substr(2,12));------------"23456789"

alert(str.substr(2,-2));------------""

alert(str.substr(-1,5));------------"9"

alert(str.substr(-1,-5));-----------""

oracle与sql的区别(常用函数)

许多软件公司都理解开发不依赖于特定数据库类型(例如Oracle SQL Server DB)的应用程序的重要性它可以让客户们选择自己习惯的平台一般来说软件开发人员都能够识别出他们的负责数据库维护的客户和必须使用现有平台和个性化的客户

关于Oracle和SQL Server之间的区别已经有很多篇文章从企业的角度和数据库管理员的角度出发描写了两者之间的一般差别在这篇文章里面我将会从应用程序的角度向你描述SQL erver和oracle平台之间的区别并且将会讨论开发不依赖于数据库环境的应用程序的几种可能的方法与此同时我不会再论讨对于应用程序来说两个平台之间显而易见的区别例如表的分割和索引

定义通用接口和语言有很少的几种通用语言和接口可以让应用程序不依赖于数据库想来也可以以同样的方式应用在关系型数据库上面: ANSI是美国国家标准局定义的这是一家志愿者成员的组织(用私人基金运转)他们在有关设备和程序等广泛领域内开发了国家承认的标准在数据库领域 ANSI定义了编写SQL命令的标准假设命令可以运行在任何的数据库上而不需要更改命令的语法

ODBC是开放数据库连接(ODBC)接口微软定义的它可以让应用程序访问数据库管理系统(DBMS)中的数据使用SQL作为访问数据的标准 ODBC允许最大的互联性这意味着一个单个的应用程序可以访问不同的数据库管理系统然后应用程序终端用户可以添加开放数据库连接(ODBC)数据库驱动来将应用程序与他们所选择的数据库管理系统链接上 OLE DB是ODBC的继承者是一组允许例如基于VB C++ Access等任何可以连接到类似SQL Server Oracle DB MySQL等后台的前台的软件组件在许多种情况下 OLE DB组件都比原有的ODBC提供了好得多的性能

JDBC(Java数据库连接)应用程序接口是Java编程语言和广泛范围的数据库 SQL数据库和其他表列数据源(例如电子表格或者普通文本文件)之间进行不依赖于数据库的连接的行业标准 JDBD应用程序接口为基于SQL的数据库访问提供了调用级别的应用程序接口真实世界中的通用接口不幸的是并不是所有数据库级别的命令都是ANSI每个数据库平台都有自己的扩展功能对于ANSI或者通用接口一般来说都代表着几本功能因此也可能意味着丧失了性能方面的竞争力对于小型数据库和小型应用程序来说要维护对数据库的通用访问是简单的但是当数据库和/或应用程序变得越来越大越来越复杂你就不得不向代码中添加功能

SQL Server和Oracle的常用函数对比

数学函数

绝对值

S:select abs() value

O:select abs() value from dual

取整(大) S:select ceiling() value O:select ceil() value from dual

取整(小)

S:select floor() value O:select floor() value from dual

取整(截取)

S:select cast( as int) value O:select trunc() value from dual

四舍五入S:select round() value O:select round() value from dual

e为底的幂S:select Exp() value O:select Exp() value from dual

取e为底的对数S:select log() value O:select ln() value from dual;

取为底对数

S:select log() value

O:select log() value from dual;

取平方

S:select SQUARE() value

O:select power() value from dual

取平方根

S:select SQRT() value

O:select SQRT() value from dual

求任意数为底的幂S:select power() value O:select power() value from dual

取随机数

S:select rand() value

O:select sys dbms_random value() value from dual;

取符号

S:select sign() value

O:select sign() value from dual

三角函数相关

圆周率S:SELECT PI() value

O:不知道

sin cos tan参数都以弧度为单位

例如 select sin(PI()/) value得到(SQLServer)

Asin Acos Atan Atan返回弧度

弧度角度互换(SQLServer Oracle不知道)

DEGREES弧度〉角度

RADIANS角度〉弧度

数值间比较

求集合最大值

S:select max(value) value from

(select value

union

select value

union

select value

union

select value)a

O:select greatest() value from dual

求集合最小值

S:select min(value) value from

(select value

union

select value

union

select value

union

select value)a

O:select least() value from dual

如何处理null值(F中的null以代替) S:select F IsNull(F) value from Tbl O:select F nvl(F) value from Tbl

字符串函数

求字符序号

S:select ascii( a) value

O:select ascii( a) value from dual

从序号求字符

S:select char() value

O:select chr() value from dual

连接

S:select++ value

O:select CONCAT()|| value from dual

子串位置返回 S:select CHARINDEX( s sdsq) value O:select INSTR( sdsq s) value from dual

模糊子串的位置返回参数去掉中间%则返回//本文转自 C++Builder研究?i=&d=dwn rn S:select patindex(%d%q% sdsfasdqe) value O:oracle没发现但是instr可以通过第四个参数控制出现次数select INSTR( sdsfasdqe sd) value from dual返回

求子串S:select substring( abcd) value O:select substr( abcd) value from dual

子串代替返回aijklmnef S:SELECT STUFF( abcdef ijklmn) value O:SELECT Replace( abcdef bcd ijklmn) value from dual

子串全部替换

S:Replace

O:select Translate( fasdbfasegas fa我) value from dual

长度S:len datalength

O:length

大小写转换 lower upper

单词首字母大写

S:没发现

O:select INITCAP( abcd dsaf df) value from dual

左补空格(LPAD的第一个参数为空格则同space函数)

S:select space()+ abcd value

O:select LPAD( abcd) value from dual

右补空格(RPAD的第一个参数为空格则同space函数)

S:select abcd+space() value

O:select RPAD( abcd) value from dual

删除空格S:ltrim rtrim O:ltrim rtrim trim

重复字符串S:select REPLICATE( abcd) value

O:没发现

发音相似性比较(这两个单词返回值一样发音相同) S:SELECT SOUNDEX( Smith) SOUNDEX( Smythe) O:SELECT SOUNDEX( Smith) SOUNDEX( Smythe) from dual SQLServer中用SELECT DIFFERENCE( Smithers Smythers)比较soundex的差返回为同音最高

日期函数

系统时间

S:select getdate() value

O:select sysdate value from dual

前后几日

直接与整数相加减

求日期S:select convert(char() getdate()) value

O:select trunc(sysdate) value from dual

select to_char(sysdate yyyy mm dd) value from dual

求时间S:select convert(char() getdate()) value O:select to_char(sysdate hh:mm:ss) value from dual

取日期时间的其他部分

S:DATEPART和DATENAME函数(第一个参数决定)

O:to_char函数第二个参数决定

参数下表需要补充

year yy yyyy quarter qq q(季度) month mm m(m O无效) dayofyear dy y(O表星期) day dd d(d O无效) week wk ww(wk O无效)

weekday dw(O不清楚)

Hour hh hh hh(hh hh S无效) minute mi n(n O无效) second ss s(s O无效)

millisecond ms(O无效)

当月最后一天

S:不知道

O:select LAST_DAY(sysdate) value from dual

本星期的某一天(比如星期日)

S:不知道

O:SELECT Next_day(sysdate) vaule FROM DUAL;

字符串转时间

S:可以直接转或者select cast( as datetime) value

O:SELECT To_date(:: yyyy mm dd hh mi ss) vaule FROM DUAL;

求两日期某一部分的差(比如秒)

S:select datediff(ss getdate() getdate()+) value O:直接用两个日期相减(比如d d=)

SELECT(d d)*** vaule FROM DUAL;

根据差值求新的日期(比如分钟)

S:select dateadd(mi getdate()) value

O:SELECT sysdate+// vaule FROM DUAL;

求不同时区时间

S:不知道

O:SELECT New_time(sysdate ydt gmt) vaule FROM DUAL;

时区参数北京在东区应该是Ydt

AST ADT大西洋标准时间

BST BDT白令海标准时间

CST CDT中部标准时间

EST EDT东部标准时间

GMT格林尼治标准时间

HST HDT阿拉斯加—夏威夷标准时间

MST MDT山区标准时间

NST纽芬兰标准时间

PST PDT太平洋标准时间

YST YDT YUKON标准时间

Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:

函数Oracle Microsoft SQL Server

把字符转换为ASCII ASCII ASCII

字串连接CONCAT(expressiοn+ expressiοn)

把ASCII转换为字符CHR CHAR

返回字符串中的开始字符(左起)INSTR CHARINDEX

把字符转换为小写LOWER LOWER

把字符转换为大写UPPER UPPER

填充字符串的左边LPAD N/A

清除开始的空白LTRIM LTRIM

清除尾部的空白RTRIM RTRIM

字符串中的起始模式(pattern)INSTR PATINDEX

多次重复字符串RPAD REPLICATE

字符串的语音表示SOUNDEX SOUNDEX

重复空格的字串RPAD SPACE

从数字数据转换为字符数据TO_CHAR STR

子串SUBSTR SUBSTRING

替换字符REPLACE STUFF

将字串中的每个词首字母大写INITCAP N/A

翻译字符串TRANSLATE N/A

字符串长度LENGTH DATELENGTH or LEN

列表中最大的字符串GREATEST N/A

列表中最小的字符串LEAST N/A

lishixinzhi/Article/program/Oracle/201311/16561

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

王者新英雄蚩姹 蚩姹还有新皮肤吗闪耀的徽章?怀旧服闪耀徽章