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

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

内容简介:實務上常須判斷 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 開始》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Cascading Style Sheets 2.0 Programmer's Reference

Cascading Style Sheets 2.0 Programmer's Reference

Eric A. Meyer / McGraw-Hill Osborne Media / 2001-03-20 / USD 19.99

The most authoritative quick reference available for CSS programmers. This handy resource gives you programming essentials at your fingertips, including all the new tags and features in CSS 2.0. You'l......一起来看看 《Cascading Style Sheets 2.0 Programmer's Reference》 这本书的介绍吧!

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

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具