除了indexOf外,还有那些方式呢?
indexOf & lastIndexOf (可以用于数组)
代码语言:javascript复制/* 使用indexOf判断,若返回-1则不包含,若包含则返回该片段第一次出现的位置(lastIndexOf返回最后一次出现的位置)。 */
"doubleam我爱你".indexOf("doubleam");
search
代码语言:javascript复制/* 使用search判断,若返回-1则不包含,若包含则返回该片段第一次出现的位置。原理:正则表达式 */
"doubleam我爱你".search("我爱你");
test (可以用于数组)
代码语言:javascript复制/* 使用正则表达式判断,若返回false则不包含,若包含则返回true。原理:正则表达式 */
/我爱你/.test("doubleam我爱你");
new RegExp("我爱你").test("doubleam我爱你");
match 与 exec
代码语言:javascript复制/*
这两个方法返回找到的结果数组,用法不同。原理:正则表达式
match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
exec()方法用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
*/
/我爱你/.exec("doubleam我爱你");//return ["我爱你", index: 8, input: "doubleam我爱你", groups: undefined];
"doubleam我爱你我想你".match(/[我]/g);//return ["我", "我"];
ES6新增字符串扩展includes(可以用于数组)
代码语言:javascript复制//@return boolean
"doubleam我爱你我想你".includes("我爱你");//return true;
其他
也可以使用
'doubleam我爱你我想你'.split("我爱你");
拆成数组通过长度来判断是否存在某个字符串片段,虽然不是很好用。
使用正则表达式限制不能输入空格 /^[sS]*.*[^s][sS]*$/