使用 startsWith() 判斷是否以特定 String 開始

栏目: JavaScript · 发布时间: 6年前

内容简介:實務上常須判斷 String 是否以特定 String 開始,這種常見的需求,該如何實現呢 ?macOS Mojave 10.14.5VS Code 1.35.1

實務上常須判斷 String 是否以特定 String 開始,這種常見的需求,該如何實現呢 ?

Version

macOS Mojave 10.14.5

VS Code 1.35.1

Quokka 1.0.233

Ramda 0.26.1

ECMAScript 5

let data = 'FP in JavaScript';

// startWith :: String -> String -> Boolean
let startsWith = search => str => str.substring(0, search.length) === search;

startsWith('FP')(data); // ?

最直覺的方式是透過內建的 String.prototype.substring() 取得部分 string 比較。

使用 startsWith() 判斷是否以特定 String 開始

let data = 'FP in JavaScript';

// startWith :: String -> String -> Boolean
let startsWith = search => str => str.slice(0, search.length) === search;

startsWith('FP')(data); // ?

也可以透過 String.prototype.slice() 回傳部分 string 比較。

使用 startsWith() 判斷是否以特定 String 開始

Regular Expression

let data = 'FP in JavaScript';

// startWith :: String -> String -> Boolean
let startsWith = search => str => new RegExp(`^${search}`).test(str);

startsWith('FP')(data); // ?

當然也可以透過 RegExp

使用 startsWith() 判斷是否以特定 String 開始

ECMAScript 2015

let data = 'FP in JavaScript';

// startWith :: String -> String -> Boolean
let startsWith = search => str => str.startsWith(search);

startsWith('FP')(data); // ?

ES6 新增了 String.prototype.startsWith() ,可直接進行比較,語意更佳。

Ramda

import { startsWith } from 'ramda';

let data = 'FP in JavaScript';

startsWith('FP')(data); // ?

事實上 Ramda 已經內建 startsWith() ,可直接使用。

startsWith()

String → String → Boolean

判斷 string 是否包含特定 string

String :要判斷的特定 string

String :data 為 string

Boolean :回傳判斷結果

使用 startsWith() 判斷是否以特定 String 開始

Array

import { startsWith } from 'ramda';

let data = [1, 2, 3];

startsWith([1, 2])(data); // ?

startsWith() 不只能用在 string,也能用在 array。

startsWith()

[a] → [a] → Boolean

判斷 array 是否包含特定 array

使用 startsWith() 判斷是否以特定 String 開始

Object

import { startsWith } from 'ramda';

let data = [
  { title: 'FP in JavaScript', price: 300 },
  { title: 'RxJS in Action', price: 400 },
  { title: 'Speaking JavaScript', price: 200 }
];

let searchArr = [
  { title: 'FP in JavaScript', price: 300 },
  { title: 'RxJS in Action', price: 400 },
];

startsWith(searchArr)(data); // ?

startsWith() 也能用在 object。

使用 startsWith() 判斷是否以特定 String 開始

Conclusion

  • startsWith() 大都用在 string,雖然也能用在 array
  • ES6 的 startsWith() 與 Ramda 的 startsWith() 功能相同,只是 ES6 為 OOP 風格,而 Ramda 為 FP 風格

Reference

Samantha Ming , String startsWith() Method in JavaScript

MDN , String.prototype.substring()

MDN , String.prototype.slice()

MDN , String.prototype.startsWith()

Ramda , startsWith()


以上所述就是小编给大家介绍的《使用 startsWith() 判斷是否以特定 String 開始》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

利用Python进行数据分析 原书第2版

利用Python进行数据分析 原书第2版

Wes McKinney / 徐敬一 / 机械工业出版社 / 2018-7 / 119

本书由Python pandas项目创始人Wes McKinney亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas、NumPy、IPython和Jupyter,并增加大量实际案例,可以帮助你高效解决一系列数据分析问题。 第2版中的主要更新包括: • 所有的代码,包括把Py......一起来看看 《利用Python进行数据分析 原书第2版》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具