substr函数是字符串处理中非常常用的函数,用于从字符串中提取指定位置和长度的子串。substr(string, start, length) 的三个参数分别表示源字符串、起始位置和截取长度。注意起始位置从0开始计数,若为负数则从末尾开始。该函数在多种编程语言如PHP、JavaScript、Perl中均有实现,但细节略有不同,使用时需注意语言差异。substr函数能够高效地处理字符串截取需求,是数据处理的基础工具。

【常见问题】
问题1:substr函数在JavaScript中如何使用?
回答1:在JavaScript中,substr函数已不推荐使用,建议使用substring或slice。但旧版仍可用:str.substr(start, length),start为起始索引,负数从末尾算,length为截取长度。注意substr的start参数支持负数,而substring不支持。
问题2:substr函数和substring函数有什么区别?
回答2:substr函数和substring函数都是截取字符串,但参数含义不同:substr(start, length)中第二个参数是长度;substring(start, end)中第二个参数是结束索引(不包含)。另外substr支持负数start,而substring将负数视为0。
问题3:substr函数在PHP中如何处理中文字符?
回答3:PHP中substr函数默认按字节处理,截取中文可能乱码。建议使用mb_substr函数,它支持多字节编码,参数相同,但需指定字符编码如UTF-8。
问题4:substr函数返回空字符串的情况有哪些?
回答4:当start参数超出字符串长度,或者length参数为0或负数时,substr返回空字符串。另外若start为负数且绝对值大于字符串长度,则视为从0开始。
问题5:substr函数在SQL中如何使用?
回答5:在SQL中,不同的数据库系统提供不同函数。例如MySQL使用SUBSTR(str, pos, len),pos从1开始;Oracle使用SUBSTR(str, pos, len),pos从1开始;SQL Server使用SUBSTRING(str, pos, len),pos从1开始。注意索引起始不同。


