字符串的api (基础)
一、基础
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) 替换字符 不改变原字符串,返回新字符串,每次只能替换一个
二、案例
判断用户名长度是否正确(oninput事件,时刻监听文本框是否发生变化。元素.oninput)
<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 ="用户名长度不合法" ;
}
}监测留言板数量(oninput事件,时刻监听文本框是否发生变化。元素.oninput)
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';
}
}检测一个字符串的首字母是大写还是小写
var str= "Hdhdhdhdhdhdhddaka";
if(str.charAt(0)>='A' && str.charAt(0) <= 'Z') {
console.log("大写");
} else {
console.log("不是大写");
}计算一个字符串中,大小写的数量
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);判断密码中是否含有特殊字符
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;
}
}判断字符串中的某个字符是不是唯一的
str = "asdfghds";
function onlyChar(str,c) {
if(str.indexOf(c) == -1) {
console.log(c+"是唯一的")
}else {
console.log(c+"不是唯一的");
}
}
onlyChar(str,'a')从字符串中找有有没有重复的字符
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));敏感词过滤
分析
给button绑定事件
获取input输入的值
过滤内容中的敏感词汇,用*代替
将过滤后input中的值,放入div中。代码
方法一:
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;
}
验证码强度
分析
长度为6-16
全是数字 提示弱
函数特殊字符(!@#等) 提示强
否则提示中代码
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 (基础)的更多相关文章
- 《Node.js高级编程》之Node 核心API基础
Node 核心API基础 第三章 加载模块 第四章 应用缓冲区 第五章 事件发射器模式简化事件绑定 第六章 使用定时器制定函数执行计划 第三章 加载模块 本章提要 加载模块 创建模块 使用node_m ...
- 从头编写 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的相 ...
- 【转载】从头编写 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的相 ...
- 从头编写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 基础框架: 第 ...
- Js 常用字符串操作 API
常用的一些字符串操作 API 整理 1.str.charAt(index).str.charCodeAt(index) - 返回指定位置的字符 / 字符编码(0~65535) index - 必须,表 ...
- Python API快餐教程(1) - 字符串查找API
字符串处理相关API 字符串是7种序列类型中的一种. 除了序列的操作函数,比如len()来求字符串长度之外,Python还为字符串提供丰富到可以写个编辑器的API. 查找类API 首先,下面的查找AP ...
- Atitit.ati str 字符串增强api
Atitit.ati str 字符串增强api 1. java StringUtils方法全览 分类: Java2011-11-30 17:22 8194人阅读 评论(2) 收藏 举报 javas ...
- Atitit.ati  str  字符串增强api
Atitit.ati str 字符串增强api 1. java StringUtils方法全览 分类: Java2011-11-30 17:22 8194人阅读 评论(2) 收藏 举报 javas ...
- 从零开始学习 asp.net core 2.1 web api 后端api基础框架(二)-创建项目
原文:从零开始学习 asp.net core 2.1 web api 后端api基础框架(二)-创建项目 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...
随机推荐
- WPF:Task与事件在下载同步界面中的应用
//设置一个下载事件类,可传输一个字符串 public class DownloadEventArgs:EventArgs { public string id { get; ...
- Extjs4 combobox autoLoad: true 时,加载两次
问题是这样的,combobox 远程加载数据时,当我们把 store 设置为 autoLoad: tue, 时,这样页面加载时,store 会load 一次,但是我们在第一次点击 下来框时,他还会 ...
- 【Java例题】3.1 7、11、13的倍数
1.找出1~5000范围内分别满足如下条件的数: (1) 7或11或13的倍数 (2) 7.11,或7.13或11.13的倍数 (3) 7.11和13的倍数. package chapter3; pu ...
- Vue系列:.sync 修饰符的作用及使用范例
作用:对传递给子组件的 prop 数据进行“双向绑定”.(正常情况下,prop 的数据都是单向数据流) 代码参考如下: 父组件部分 子组件部分
- 扩展欧几里德算法(递归及非递归实现c++版)
今天终于弄懂了扩展欧几里德算法,有了自己的理解,觉得很神奇,就想着写一篇博客. 在介绍扩展欧几里德算法之前,我们先来回顾一下欧几里德算法. 欧几里德算法(辗转相除法): 辗转相除法求最大公约数,高中就 ...
- MySQL储存过程详解
我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的 ...
- Android Bluetooth Low Energy (BLE)简单方便的蓝牙开源库——EasyBLE
源码传送门 最新版本 功能 支持多设备同时连接 支持广播包解析 支持连接同时配对 支持搜索系统已连接设备 支持搜索器设置 支持自定义搜索过滤条件 支持自动重连.最大重连次数限制.直接重连或搜索到设备再 ...
- 【0808 | Day 11】文件的高级应用/修改以及函数的定义/使用/参数
文件的高级应用 一.三种模式 'r+'模式 with open('test.py','r',encoding = 'utf8') as fr: print(fr.writable()) fr.writ ...
- 以股票案例入门基于SVM的机器学习
SVM是Support Vector Machine的缩写,中文叫支持向量机,通过它可以对样本数据进行分类.以股票为例,SVM能根据若干特征样本数据,把待预测的目标结果划分成“涨”和”跌”两种,从而实 ...
- Nginx+Zuul集群实现高可用网关
代码参考:https://github.com/HCJ-shadow/Zuul-Gateway-Cluster-Nginx Zuul的路由转发功能 前期准备 搭建Eureka服务注册中心 服务提供者m ...