C++之substr与substring浅谈

博客介绍了substr和substring方法,二者功能相似但参数不同。substr返回从指定位置开始的指定长度子字符串,substring返回指定位置的子字符串。还给出了二者的参数说明、示例,以及一道关于substr方法应用的练习题目。

转自:http://blog.sina.com.cn/s/blog_9d85c1900102v1rm.html


区别:主要是两者的参数不同
功能:相似
        substr :返回一个从指定位置开始的指定长度的子字符串

substring :返回位于 String 对象中指定位置的子字符串。

用法:

stringvar.substr(start , [length ])

参数

stringvar   必选项。要提取子字符串的字符串文字或 String 对象。

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

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

说明    如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到 stringvar 的最后。

strVariable.substring(startend)

参数

start:指明子字符串的起始位置,该索引从 0 开始起算。

end:指明子字符串的结束位置,该索引从 0 开始起算。

说明

substring 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串。

substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点。

例如, strvar.substring(0, 3) 和strvar.substring(3, 0) 将返回相同的子字符串。

如果 start 或 end 为 NaN 或者负数,那么将其替换为0。

子字符串的长度等于 start 和 end 之差的绝对值。

例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0)返回的子字符串的的长度是 3。

substr 方法

示例

下面的示例演示了substr 方法的用法。

function SubstrDemo(){

   var s, ss;                //声明变量。

   var s = “The rain in Spain falls mainly in the plain.”;

   ss = s.substr(12, 5);  //获取子字符串。

   return(ss);               //返回 “Spain”。

 

 

 

练习题目

在表单(form1)中有一个文本框元素(fname),用于输入电话号码,格式如:010-82668155,

要求前3位是010,紧接一个“-”,后面是8位数字。要求在提交表单时,根据上述条件验证该文本框中输入内容的有效性,下列语句中,( )能正确实现以上功能

     A. varstr=form1.fname.value;

         if(str.substr(0,4)!=”010-“|| str.substr(4).length!=8||

               isNaN(parseFloat(str.substr(4))))

             alert(“无效的电话号码!“);

     B. varstr=form1.fname.value;

         if(str.substr(0,4)!=”010-” && str.substr(4).length!=8 &&

               isNaN(parseFloat(str.substr(4))))

             alert(“无效的电话号码!“);

     C. varstr=form1.fname.value;

         if(str.substr(0,3)!=”010-“|| str.substr(3).length!=8||

               isNaN(parseFloat(str.substr(3))))

             alert(“无效的电话号码!“);

     D. varstr=form1.fname.value;

         if(str.substr(0,4)!=”010-“&&str.substr(4).length!=8 &&

               !isNaN(parseFloat(str.substr(4))))

             alert(“无效的电话号码!“);

 

substring 方法

示例

下面的示例演示了 substring 方法的用法。

function SubstringDemo(){

   var ss;                         //声明变量。

   var s = “The rain in Spain falls mainly in the plain..”;

   ss = s.substring(12, 17);   //取子字符串。

   return(ss);                     //返回子字符串。

}

            </div>
### 字符串处理函数 `substr` 和 `substring` 的比较 #### 函数定义参数说明 在字符串操作方面,不同编程语言提供了多种方法来提取子串。对于 PHP 中的 `substr` 函数而言,此函数用于返回字符串的一部分[^1]。 而在 JavaScript 或其他一些支持该命名方式的语言中的 `substring` 方法,则允许指定两个索引位置作为起始点和结束点来获取中间部分的内容[^2]。 具体来说: - **PHP 的 `substr`** - 功能描述:从给定的位置开始截取一定长度的字符序列。 - 参数列表: - `$string`: 被操作的目标字符串。 - `$start`: 开始处的偏移量;如果为正数表示从左向右计算;如果是负数则代表从右边算起。 - `$length`(可选): 所需取得的最大数量,默认直到字符串结尾为止。 ```php <?php echo substr('abcdef', 1, 3); // 输出 bcd ?> ``` - **JavaScript 的 `substring`** - 功能描述:通过提供的一对数值界定范围内的所有字符组成新的片段并返回之。 - 参数列表: - `indexStart`: 提取过程应从此整型值所对应的位址启动。 - `indexEnd`(可选): 此参数决定了终止界限,在这里不会被计入最终结果集内;如果不给出的话将会一直持续到最后一位。 ```javascript console.log("hello world".substring(0, 5)); // hello ``` 值得注意的是,尽管两者都能实现相似的功能——即获得原字符串的一个连续区间副本,但在细节上存在差异。例如,当涉及到边界条件或是如何解释负数时,这些细微差别可能会导致不同的行为表现。 #### 编码设置的影响 另外,在某些情况下,编码配置也会影响上述函数的结果准确性。比如 PHP 配置文件中有关于 iconv 组件的相关设定可以影响到多字节字符集下的字符串处理逻辑[^3]。 ```ini ;iconv.input_encoding = ISO-8859-1 ;iconv.internal_encoding = ISO-8859-1 ;iconv.output_encoding = ISO-8859-1 ``` 以上配置项分别指定了输入流、内部处理以及输出流使用的字符编码标准。确保这三个选项一致有助于避免因编码不匹配而引发的问题。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值