使用 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 比較。
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 比較。
Regular Expression
let data = 'FP in JavaScript'; // startWith :: String -> String -> Boolean let startsWith = search => str => new RegExp(`^${search}`).test(str); startsWith('FP')(data); // ?
當然也可以透過 RegExp
。
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
:回傳判斷結果
Array
import { startsWith } from 'ramda'; let data = [1, 2, 3]; startsWith([1, 2])(data); // ?
startsWith()
不只能用在 string,也能用在 array。
startsWith()
[a] → [a] → Boolean
判斷 array 是否包含特定 array
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。
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()
以上所述就是小编给大家介绍的《使用 startsWith() 判斷是否以特定 String 開始》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Delphi:检查文件是否正在使用中
- 使用 endsWith() 判斷是否以特定 String 結束
- 如何使用XposedOrNot来判断自己的密码是否泄露
- SpringBoot系列之使用自定义注解校验用户是否登录
- c# – 使用ConcurrentBag作为ConcurrentDictionary的对象是否正确
- 最简洁的方法是使用Java比较三个对象是否相等?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C语言的科学和艺术
罗伯茨 / 翁惠玉 / 机械工业出版社 / 2005-3 / 55.00元
《C语言的科学和艺术》是计算机科学的经典教材,介绍了计算机科学的基础知识和程序设计的专门知识。《C语言的科学和艺术》以介绍ANSI C为主线,不仅涵盖C语言的基本知识,而且介绍了软件工程技术以及如何应用良好的程序设计风格进行开发等内容。《C语言的科学和艺术》采用了库函数的方法,强调抽象的原则,详细阐述了库和模块化开发。此外,《C语言的科学和艺术》还利用大量实例讲述解决问题的全过程,对开发过程中常见......一起来看看 《C语言的科学和艺术》 这本书的介绍吧!