Erlo

查询字符串中子字符串所有出现位置

时间:2018-11-09 12:02   阅读:8次   来源:博客园页面报错


JS中 indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。运用第二个参数,循环调用就能获取到子串出现的所有位置

 1   #zs#*
 2    * 查询字符串中子字符串出现位置
 3    * @param str
 4    * @param substr
 5    * @return {Array}
 6    #fzs#
 7   function search_substr_pos(str, substr) {
 8     var _search_pos = str.indexOf(substr), _arr_positions = [];
 9     while (_search_pos > -1) {
10       _arr_positions.push(_search_pos);
11       _search_pos = str.indexOf(substr, _search_pos + 1);
12     }
13     return _arr_positions;
14   }
15 
16   var str = "look at me,is there anything can prove that I am a good guy ?";
17   var $_pos_substr = search_substr_pos(str, 'e');//子串位置
18   var $_times_substr = $_pos_substr.length;//出现次数
19 
20   console.log($_pos_substr);    //  [ 9, 16, 18, 37 ]
21   console.log($_times_substr);  //  4

 

同理,PHP中使用strpos()

 

 1 #zs#*
 2  * 查询字符串中子字符串出现位置
 3  * @param $str
 4  * @param $substr
 5  * @return array
 6  #fzs#
 7 function search_substr_pos($str, $substr)
 8 {
 9   $_search_pos = strpos($str, $substr);
10   $_arr_positions = array();
11   while ($_search_pos > -1) {
12     $_arr_positions[] = $_search_pos;
13     $_search_pos = strpos($str, $substr, $_search_pos + 1);
14   }
15   return $_arr_positions;
16 }
17 
18 $str = "look at me,is there anything can prove that I am a good guy ?";
19 $_pos_substr = search_substr_pos($str, 'e');//子串位置
20 $_times_substr = count($_pos_substr);//出现次数
21 
22 print_r($_pos_substr);    //  Array ( [0] => 9 [1] => 16 [2] => 18 [3] => 37 )
23 print_r($_times_substr);  //  4

 

 
下一篇:MySQL从删库到跑路_高级(七)——事务和锁

评论留言

还没有评论留言,赶紧来抢楼吧~~

Erlo大厅()

* 这里是“Erlo大厅”,在这发言所有人都可以看到。只保留当天信息

  • Erlo.vip2018-11-18 00:24:39Hello、欢迎使用Erlo大厅,这里是个吐槽的地方。
  • 首页 源码分享 新闻资讯 ERLO 搜索
    鼠标试试
    返回顶部