一、基础

1.字符串.charAt(index) 根据下标获取字符串的某一个字符

应用: 判断字符串的首字母是否大写

任意给定的一串字母,统计字符串里面的大写字母和小写字母的个数

2.字符串.indexOf("") 查询字符在字符串中第一次出现的下标(如果没找到,返回-1) 如果是两个参数,第二个代表从第几个查找

应用: 判断密码中是否含有特殊字符
字符串去重

3.字符串.lastIndexOf("") 查找字符在字符串中最后一次出现的位置

应用: 判断字符串中的某个字符是不是唯一的

从字符串中找出没有重复的字符

4.字符串.substring(start,end) 字符串的截取 (从start开始截取到end 不包括end)(不操作原字符串)

如果 indexStart 等于 indexEnd,substring 返回一个空字符串。

如果省略 indexEnd,substring 提取字符一直到字符串末尾。

如果任一参数小于 0 或为 NaN,则被当作 0。

如果任一参数大于 stringName.length,则被当作 stringName.length。

如果 indexStart 大于 indexEnd,则 substring 的执行效果就像两个参数调换了一样。

5.字符串.slice(start,end) 字符串的截取 (从start开始截取到end 不包括end)(接受一个负的参数 -1代表从最后一个开始)(不操作原符串) str.slice(-3,-1) 倒数第三个不包括倒数第一个

6.字符串.substr(start,length) 从start开始截取长度为length的部分。(如果参数是一个的情况下,是删除几个字符)(不操作原符串)

7.字符串.split(分隔符) 》 字符串翻转(转数组,数组翻找再赋值给字符串)(不操作原符串)

8.字符串.replace(old,newStr) 替换字符 不改变原字符串,返回新字符串,每次只能替换一个

二、案例

  1. 判断用户名长度是否正确(oninput事件,时刻监听文本框是否发生变化。元素.oninput)

    1. <input type="text" id="username">
      <span id="info"></span>
      username.oninput = function() {
        if(this.value.length>=6 && this.value.length<=10) {
        info.innerHTML ="用户名长度合法" ;
      } else {
      info.innerHTML ="用户名长度不合法" ;
      }
      }
  2. 监测留言板数量(oninput事件,时刻监听文本框是否发生变化。元素.oninput)

    1. css代码:
        textarea {
            width: 500px;
            height: 200px;
            resize: none;
        }
        em {
            font-size: 22px;
            color: red;
        }
      html代码:
      <textarea name="" id="txt"></textarea>
        <span id="info">剩余字数: <em id="text1">200</em></span>
      js代码:
        txt.oninput = function() {
            text1.innerHTML = 200 - this.value.length ;
            if (this.value.length >= 200) {
                  txt.disabled = 'true';  
            }
        }
  3. 检测一个字符串的首字母是大写还是小写

    1. var str= "Hdhdhdhdhdhdhddaka";
      if(str.charAt(0)>='A' && str.charAt(0) <= 'Z') {
      console.log("大写");
      } else {
      console.log("不是大写");
      }
  4. 计算一个字符串中,大小写的数量

    1. var str = "lllllfkfLLLLLLLL";
      var uppercase = 0;
      var lowercase = 0;
      for (var i = 0, k = str.length; i < k; i++) {
      if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
      uppercase++;
      } else {
      lowercase++;
      }
      }
      console.log("大写:" + uppercase + ";小写:" + uppercase);
  5. 判断密码中是否含有特殊字符

    1. var special = "#$%&*";
      var str = "11111jdjdjjdd%^#$%jd&";
      for (var i = 0, k = special.length; i < k; i++) {
      if (str.indexOf(special.charAt(i)) != -1) {
      console.log("有特殊字符");
      break;
      }
      }
  6. 判断字符串中的某个字符是不是唯一的

    1. str = "asdfghds";

      function onlyChar(str,c) {  
        if(str.indexOf(c) == -1) {
        console.log(c+"是唯一的")
      }else {
      console.log(c+"不是唯一的");
      }
      }
      onlyChar(str,'a')
  7. 从字符串中找有有没有重复的字符

    1. str = "asdfghds";
      function strNoRepeat(str) {
        strTemp = "";
        for (var i = 0, k = str.length; i < k; i++) {
            if (str.indexOf(str.charAt(i)) == str.lastIndexOf(str.charAt(i))) {
            strTemp += str.charAt(i);
      }
      }
      return strTemp;
      }

      console.log(strNoRepeat(str));
  8. 敏感词过滤

    1. 分析

      1. button绑定事件
        获取input输入的值
        过滤内容中的敏感词汇,用*代替
        将过滤后input中的值,放入div中。
    2. 代码

      1. 方法一:

        var special = ['fuck', 'md', 'kao', 'laji'];
        btn.onclick = function () {
          //获取文本框中的值
          var inputVal = txt.value;
          // 过滤敏感词汇
          for (var i = 0; i < special.length; i++) {
          for (var j = 0; j < inputVal.length; j++) {
          inputVal = inputVal.replace(special[i], '*');
          }
        }
        //将过滤后的值写入div中
        content.innerHTML = inputVal;
        }

        方法二:(利用正则表达式进行全局匹配)
        var special = ['fuck', 'md', 'kao', 'laji'];
        btn.onclick = function () {
          //获取文本框中的值
          var inputVal = txt.value;
          for (var i = 0; i < special.length; i++) {
          var reg = new RegExp(special[i], "g");   //正则表达式 g代表的是全局匹配
          //循环遍历敏感词
          inputVal = inputVal.replace(reg, '*');
          }

        content.innerHTML = inputVal;
        }
  9. 验证码强度

    1. 分析

      1. 长度为6-16
        全是数字 提示弱
        函数特殊字符(!@#等) 提示强
        否则提示中
    2. 代码

      1. css代码:
        <input type="text" id="psw"><span id="info"></span>
        html代码:
        span {
                  font-size: 12px;
                  margin-left: 10px;
              }
        js代码:
        var special = "@#$%^&*";
        //找到页面中的元素,绑定事件
        psw.oninput = function () {
        var pswVal = psw.value;
        if (pswVal.length < 6 || pswVal.length > 16) {
        return info.innerHTML = "密码长度不合法!";
        }
        if (typeof (Number(pswVal)) == 'number' && !isNaN(pswVal)) {
        return info.innerHTML = "密码强度弱!";
        }
        // if(Number(pswVal) == pswVal) {
        // return info.innerHTML = "密码强度弱!"
        // }
        for (var i = 0; i < special.length; i++) {
        if (pswVal.indexOf(special[i]) != -1) {
        return info.innerHTML = "密码强度强!";
        }
        }
        return info.innerHTML = "密码强度中";
        }

字符串的api (基础)的更多相关文章

  1. 《Node.js高级编程》之Node 核心API基础

    Node 核心API基础 第三章 加载模块 第四章 应用缓冲区 第五章 事件发射器模式简化事件绑定 第六章 使用定时器制定函数执行计划 第三章 加载模块 本章提要 加载模块 创建模块 使用node_m ...

  2. 从头编写 asp.net core 2.0 web api 基础框架 (1)

    工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相 ...

  3. 【转载】从头编写 asp.net core 2.0 web api 基础框架 (1)

    工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相 ...

  4. 从头编写asp.net core 2.0 web api 基础框架 (5) + 使用Identity Server 4建立Authorization Server (7) 可运行前后台源码

    前台使用angular 5, 后台是asp.net core 2.0 web api + identity server 4. 从头编写asp.net core 2.0 web api 基础框架: 第 ...

  5. Js 常用字符串操作 API

    常用的一些字符串操作 API 整理 1.str.charAt(index).str.charCodeAt(index) - 返回指定位置的字符 / 字符编码(0~65535) index - 必须,表 ...

  6. Python API快餐教程(1) - 字符串查找API

    字符串处理相关API 字符串是7种序列类型中的一种. 除了序列的操作函数,比如len()来求字符串长度之外,Python还为字符串提供丰富到可以写个编辑器的API. 查找类API 首先,下面的查找AP ...

  7. Atitit.ati  str  字符串增强api

    Atitit.ati  str  字符串增强api 1. java StringUtils方法全览 分类: Java2011-11-30 17:22 8194人阅读 评论(2) 收藏 举报 javas ...

  8. Atitit.ati&#160;&#160;str&#160;&#160;字符串增强api

    Atitit.ati  str  字符串增强api 1. java StringUtils方法全览 分类: Java2011-11-30 17:22 8194人阅读 评论(2) 收藏 举报 javas ...

  9. 从零开始学习 asp.net core 2.1 web api 后端api基础框架(二)-创建项目

    原文:从零开始学习 asp.net core 2.1 web api 后端api基础框架(二)-创建项目 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

随机推荐

  1. python_0基础学习_day02

    第二节 一,while while也称为无限循环.死循环 while 条件: 缩进 循环体 应用领域:音乐播放:单曲循环,列表循环,随机播放(也是有规律的) 登陆界面:…… 数学计算:1~100的和, ...

  2. Activity 使用详解

    极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...

  3. 如何创建Github创库

    重点:利用Markdown语言写简单的日常使用的文本 基础写作和语法格式 本篇文章的内容来源于Github的基础写作帮助.如果在观看时有什么问题,可以直接查阅源文件.另外需要说明的是Git对Markd ...

  4. java并发编程(二十五)----(JUC集合)LinkedBlockingDeque和ConcurrentLinkedDeque介绍

    Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque.这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂. LinkedBlockingDeque 我们 ...

  5. Maven安装配置及其插件m2e(Eclipse Indigo 和 MyEclipse8.5)的安装配置

    Maven安装配置及其插件m2e(Eclipse Indigo 和 MyEclipse8.5)的安装配置   系统:Windows7 使用软件: Maven3.0.3 + Eclipse Indigo ...

  6. 通过注解实现通用导出Excel

    Javaweb开发中数据的导入导出很常见,每次我们都需要写很多代码,所以我就在想能不能写一些通用的方法,之前已经在网上 整理过一些通用的方法,最近在网上看到一位牛人封装的更加简介,自己拿过来整理了一下 ...

  7. JWT+Interceptor实现无状态登录和鉴权

    无状态登录原理 先提一下啥是有状态登录 单台tomcat的情况下:编码的流程如下 前端提交表单里用户的输入的账号密码 后台接受,查数据库, 在数据库中找到用户的信息后,把用户的信息存放到session ...

  8. (二十九)c#Winform自定义控件-文本框(二)

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...

  9. java120经典面试题

    经典面试题 -----version 1.0 题注:以下答案仅限本人个人见解,若有错误和建议请多多指教.QQ:1807812486 题目来源 1.什么是Java虚拟机?为什么Java被称作是" ...

  10. 用 Python 分析上网记录,发现了很多不可思议的事

    摘要:分享个​ Python 神工具.​ 长时间使用浏览器会积累大量浏览器历史记录,这些是很隐私的数据,里面甚至可能有一些不可描述的网站或者搜索记录不想让别人知道. 不过,我们自己可能会感兴趣,天天上 ...