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

查看所有标签

猜你喜欢:

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

C语言的科学和艺术

C语言的科学和艺术

罗伯茨 / 翁惠玉 / 机械工业出版社 / 2005-3 / 55.00元

《C语言的科学和艺术》是计算机科学的经典教材,介绍了计算机科学的基础知识和程序设计的专门知识。《C语言的科学和艺术》以介绍ANSI C为主线,不仅涵盖C语言的基本知识,而且介绍了软件工程技术以及如何应用良好的程序设计风格进行开发等内容。《C语言的科学和艺术》采用了库函数的方法,强调抽象的原则,详细阐述了库和模块化开发。此外,《C语言的科学和艺术》还利用大量实例讲述解决问题的全过程,对开发过程中常见......一起来看看 《C语言的科学和艺术》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具