JavaScript 文字列は、テキストの保存と操作に使用されます。したがって、ユーザー入力データを処理するとき、DOM オブジェクトのプロパティを読み取ったり設定するとき、Cookie を操作するとき、さまざまな日付を変換するときなど、彼女は常にあなたと一緒にいます。 count; と彼女の多数の API は、私が頻繁に使用するものなので、Bad Writing
を通して参照し、ブログの存在を反映することも考えます。 。 烂笔头
一翻,顺道也体现下博客存在的价值,由此就有了这篇纪要。
字符串截取
1. substring()
xString.substring(start,end)
substring()是最常用到的字符串截取方法,它可以接收两个参数(参数不能为负值),分别是要截取的开始位置和结束位置,它将返回一个新的字符串,其内容是从start处到end-1处的所有字符。若结束参数(end)省略,则表示从start位置一直截取到最后。
let str = 'www.jeffjade.com' console.log(str.substring(0,3)) // www console.log(str.substring(0)) //www.jeffjade.com console.log(str.substring(-2)) //www.jeffjade.com (传负值则视为0)
2. slice()
stringObject.slice(start, end)
slice()方法与substring()方法非常类似,它传入的两个参数也分别对应着开始位置和结束位置。而区别在于,slice()中的参数可以为负值,如果参数是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符。
let str = 'www.jeffjade.com' console.log(str.slice(0, 3)) // www console.log(str.slice(-3, -1)) // co console.log(str.slice(1, -1)) // www.jeffjade.co console.log(str.slice(2, 1)) // '' (返回空字符串,start须小于end) console.log(str.slice(-3, 0)) // '' (返回空字符串,start须小于end)
3. substr()
stringObject.substr(start,length)
substr()方法可在字符串中抽取从start下标开始的指定数目的字符。其返回值为一个字符串,包含从 stringObject的start(包括start所指的字符)处开始的length个字符。如果没有指定 length,那么返回的字符串包含从start到stringObject的结尾的字符。另外如果start为负数,则表示从字符串尾部开始算起。
let str = 'www.jeffjade.com' console.log(webStr.substr(1, 3)) // ww. console.log(webStr.substr(0)) // www.jeffjade.com console.log(webStr.substr(-3, 3)) // com console.log(webStr.substr(-1, 5)) // m (目标长度较大的话,以实际截取的长度为准)
4. split()
str.split([separator][, limit])
separator 指定用来分割字符串的字符(串)。separator 可以是一个字符串或正则表达式。 如果忽略 separator,则返回整个字符串的数组形式。如果 separator 是一个空字符串,则 str 将会把原字符串中每个字符的数组形式返回。
limit 一个整数,限定返回的分割片段数量。split 方法仍然分割每一个匹配的 separator,但是返回的数组只会截取最多 limit 个元素。
let str = 'www.jeffjade.com' str.split('.') // ["www", "jeffjade", "com"] str.split('.', 1) // ["www"] str.split('.').join('') // wwwjeffjadecom
话说这个函数真心好用,很多时候的字符截取需求,就是依赖于某个字符;而以上三个函数都需知道其位置。我们当然可以借助 indexOf
等方法获取,很显然这很繁琐;而借助 split
则显得更轻而易举。
查找类方法
1. indexOf() & includes()
stringObject.indexOf(searchValue,fromIndex)
indexOf()用来检索指定的字符串值在字符串中首次出现的位置。它可以接收两个参数,searchValue 表示要查找的子字符串,fromIndex 表示查找的开始位置,省略的话则从开始位置进行检索。
let str = 'www.jeffjade.com' console.log(str.indexOf('.')) // 3 console.log(str.indexOf('.', 1)) // 3 console.log(str.indexOf('.', 5)) // 12 console.log(str.indexOf('.', 12)) // -1
虽然 indexOf()
文字列インターセプト
1. substring()if (str.indexOf('yoursPecifiedStr') !== -1) { // do something }substring() は、最も一般的に使用される文字列インターセプト メソッドであり、次の 2 つのパラメーターを受け取ることができます (パラメーターは負の値にすることはできません)。開始位置と終了位置を指定すると、内容が start から end-1 までのすべての文字である新しい文字列が返されます。終了パラメータ(end)を省略した場合は、開始位置から最後までインターセプトすることを意味します。
str.includes(searchString[, position])2. slide()
'Blue Whale'.includes('blue'); // returns false '乔峰乔布斯乔帮主'.includes('乔布斯'); // returns true if (str.includes('yoursPecifiedStr')) { // do something(这样写是不是更为人性化?Yeah,这是一个更趋向人性化的时代嘛) }slice() メソッドは、substring() メソッドと非常によく似ており、それぞれ開始位置と終了位置に対応します。違いは、slice() のパラメーターが負の値である場合、パラメーターは文字列の末尾から開始する位置を指定することです。つまり、-1 は文字列の最後の文字を指します。
stringObject.lastIndexOf(searchValue,fromIndex)3. substr()
let str = 'www.jeffjade.com'
console.log(str.lastIndexOf('.')) // 12
console.log(str.lastIndexOf('.', 1)) // -1
console.log(str.lastIndexOf('.', 5)) // 3
console.log(str.lastIndexOf('.', 12)) // 12
substr()メソッドは、文字列の開始添え字から指定された数の文字を抽出できます。戻り値は、stringObject の先頭から始まる長さの文字 (start が指す文字を含む) を含む文字列です。長さが指定されていない場合、返される文字列には stringObject の先頭から末尾までの文字が含まれます。また、start が負の数の場合は、文字列の末尾から数えることを意味します。 stringObject.search(substr) stringObject.search(regexp)4.split()
let str = 'www.jeffjade.com'
console.log(str.search('w')) // 0
console.log(str.search(/j/g)) // 4
console.log(str.search(/\./g)) // 3
separator は、文字列を分割するために使用される文字 (文字列) を指定します。区切り文字には文字列または正規表現を使用できます。 区切り文字を省略した場合は、文字列全体の配列が返されます。 separator が空の文字列の場合、str は元の文字列の各文字の配列を返します。
stringObject.match(substr) stringObject.match(regexp)この関数は非常に使いやすいと言われています。多くの場合、文字インターセプトの要件は特定の文字に依存しており、上記の 3 つの関数はすべてその位置を知る必要があります。もちろん、
indexOf
などのメソッドを使用して取得することもできますが、これは明らかに非常に面倒ですが、split
を使用すると簡単になります。
Find クラス メソッド
1.indexOf() & include()let str = '#1a2b3c4d5e#'; console.log(str.match('A')); //返回null console.log(str.match('b')); //返回["b", index: 4, input: "#1a2b3c4d5e#"] console.log(str.match(/b/)); //返回["b", index: 4, input: "#1a2b3c4d5e#"]indexOf() は、指定された文字列値が文字列内で最初に出現する位置を取得するために使用されます。 2 つのパラメータを受け取ることができます。searchValue は検索する部分文字列を表し、fromIndex は検索の開始位置を表します。省略した場合、検索は開始位置から実行されます。
let str = '#1a2b3c4d5e#' console.log(str.match(/h/g)) //返回null console.log(str.match(/\d/g)) //返回["1", "2", "3", "4", "5"]
indexOf()
は、指定された文字列値が文字列内で最初に出現する位置を取得するために使用されますが、多くの場合、指定された文字列が文字列内に存在するかどうかを判断するために使用されます。コードは次のようになります: 🎜stringObject.replace(regexp/substr,replacement)🎜 このようなシナリオでは、ES6 言語の include() ははるかに洗練されており、文字列が別の string に含まれるかどうかを判断するために使用されることを知っておく必要があります。それ以外の場合は true を返し、それ以外の場合は false を返します。 🎜
let str = 'www.jeffjade.com' console.log(str.replace('w', 'W')) // Www.jeffjade.com console.log(str.replace(/w/, 'W')) // Www.jeffjade.com🎜🎜searchString🎜 検索される部分文字列。 🎜位置🎜 オプション。部分文字列の検索を開始する現在の文字列のインデックス位置は、デフォルトでは 0 です。 include() では大文字と小文字が区別されることに注意してください。 🎜
let str = 'www.jeffjade.com' console.log(str.replace(/w/g, 'W')) // WWW.jeffjade.com🎜2. lastIndexOf()🎜
stringObject.toLowerCase() stringObject.toUpperCase()🎜lastIndexOf() 構文は、指定された部分文字列値の最後の出現位置を返し、その取得順序は後ろから前です。 🎜
let str = 'www.jeffjade.com' console.log(str.toLowerCase()) // www.jeffjade.com console.log(str.toUpperCase()) // WWW.JEFFJADE.COM🎜search()🎜
function ncieFunc() { return "四海无人对夕阳"; } var niceMan = "陈寅恪"; var jadeTalk = `一生负气成今日 \n ${ncieFunc()} , 语出 ${niceMan} 的《忆故居》。 ` console.log(jadeTalk)🎜search() メソッドは、文字列内の指定された部分文字列を取得するか、正規表現に一致する部分文字列を取得するために使用されます。最初に一致した部分文字列の開始位置を返します。一致するものがない場合は -1 を返します。 🎜
String.prototype.reverse = function () { return this.split('').reverse().join('') }🎜match() メソッド 🎜
String.prototype.removeBlankLines = function () { return this.replace(/(\n[\s\t]*\r*\n)/g, '\n').replace(/^[\n\r\n\t]*|[\n\r\n\t]*$/g, '') }🎜match() メソッドは、文字列内の指定された値を取得したり、1 つ以上の正規表現の一致を検索したりできます。 🎜🎜渡されたパラメータがグローバル一致を実行しない部分文字列または正規表現の場合、match() メソッドは先頭から一致を実行します。一致する結果がない場合は、null が返されます。それ以外の場合、配列の 0 番目の要素には一致するテキストが格納されます。さらに、返される配列には、一致するテキストと stringObject の開始文字インデックスを表す 2 つのオブジェクト属性も含まれます。参照 (つまり、元の文字列)。 🎜
let Str = '陈寅恪,鲁迅,钱钟书,胡适,王国维,梁启超,吴宓,季羡林' let hallAllOfFameArr = Str.split(',') console.log(hallAllOfFameArr) // ["陈寅恪", "鲁迅", "钱钟书", "胡适", "王国维", "梁启超", "吴宓", "季羡林"]🎜 パラメータがグローバル一致の正規表現で渡された場合、match() は最初から最後まで複数回一致します。結果が見つからない場合は、null が返されます。それ以外の場合は、要件を満たすすべての部分文字列を格納し、インデックスと入力属性を持たない配列が返されます。 🎜
let str = '#1a2b3c4d5e#' console.log(str.match(/h/g)) //返回null console.log(str.match(/\d/g)) //返回["1", "2", "3", "4", "5"]
其他方法
replace()方法
stringObject.replace(regexp/substr,replacement)
replace()方法用来进行字符串替换操作,它可以接收两个参数,前者为被替换的子字符串(可以是正则),后者为用来替换的文本。
如果第一个参数传入的是子字符串或是没有进行全局匹配的正则表达式,那么replace()方法将只进行一次替换(即替换最前面的),返回经过一次替换后的结果字符串。
let str = 'www.jeffjade.com' console.log(str.replace('w', 'W')) // Www.jeffjade.com console.log(str.replace(/w/, 'W')) // Www.jeffjade.com
如果第一个参数传入的全局匹配的正则表达式,那么replace()将会对符合条件的子字符串进行多次替换,最后返回经过多次替换的结果字符串。
let str = 'www.jeffjade.com' console.log(str.replace(/w/g, 'W')) // WWW.jeffjade.com
toLowerCase() & toUpperCase()
stringObject.toLowerCase() stringObject.toUpperCase()
toLowerCase()方法可以把字符串中的大写字母转换为小写,toUpperCase()方法可以把字符串中的小写字母转换为大写。
let str = 'www.jeffjade.com' console.log(str.toLowerCase()) // www.jeffjade.com console.log(str.toUpperCase()) // WWW.JEFFJADE.COM
模板字符串
这个也是 ES6 才引入进来的新语法,来解决传统输出String模板的蹩脚问题;其功能之强大,设计之贴心,着实令人得到极大满足感,好如久旱逢甘霖一般的舒畅。更何况,在当今 MVVM
前端框架大行其道的时代,使用 ES6 语法也是不用自己个儿去操心兼容性问题,对于塑造 Dom Template
更是如虎添翼,令人爱不释手。
对于她的使用,阮一峰在ECMAScript 6 入门有过详细的描述以及示例,在此就不赘述。只需要明白我们可以像这样去操作了,试问爽否?
function ncieFunc() { return "四海无人对夕阳"; } var niceMan = "陈寅恪"; var jadeTalk = `一生负气成今日 \n ${ncieFunc()} , 语出 ${niceMan} 的《忆故居》。 ` console.log(jadeTalk)
运行之,Chrome Console 输出结果如下:
一生负气成今日
四海无人对夕阳 ,
语出 陈寅恪 的《忆故居》。
组合其法
细看 JavaScript 提供的String Api,还是有蛮多的,也有些许废弃的,也有将在未来版本会出来的;这其中不乏很多也挺有用的,譬如: charAt(x)、charCodeAt(x)、concat(v1, v2,…)、fromCharCode(c1, c2,…) 等等,还有 ES6
对字符串的扩展,比如 字符串的遍历器接口,repeat() 等等,这可以参见 ES6-string,这里就不多赘述。
在实际代码生产中,很多时候需要用这些提供的基本方法,来打出一套组合拳,以解决其需求所需。很显然又可以借助 prototype
属性,将自造的各路拳法,其归置于 String 对象,然后天亮啦。这一步就看个人喜好了,这里抛出一二段,以引大玉。
字符串反转
String.prototype.reverse = function () { return this.split('').reverse().join('') }
去除空白行
String.prototype.removeBlankLines = function () { return this.replace(/(\n[\s\t]*\r*\n)/g, '\n').replace(/^[\n\r\n\t]*|[\n\r\n\t]*$/g, '') }
String转化为数组
1, 转化为一维数组
场景是根据某子字符串转化,直接就用 split
就好;如果转换规则不统一,那么请自求多福吧。
let Str = '陈寅恪,鲁迅,钱钟书,胡适,王国维,梁启超,吴宓,季羡林' let hallAllOfFameArr = Str.split(',') console.log(hallAllOfFameArr) // ["陈寅恪", "鲁迅", "钱钟书", "胡适", "王国维", "梁启超", "吴宓", "季羡林"]
2, 转化为二维数组
String.prototype.removeBlankLines = function () { return this.replace(/(\n[\s\t]*\r*\n)/g, '\n').replace(/^[\n\r\n\t]*|[\n\r\n\t]*$/g, '') } String.prototype.strTo2dArr = function(firstSplit, secondSplit){ var contentStr = this.removeBlankLines(), contentStrArr = contentStr.split(firstSplit), resultArr = contentStrArr.map((element) => { return element.split(secondSplit) }) return resultArr } var str = ` 渺渺钟声出远方,依依林影万鸦藏。 一生负气成今日,四海无人对夕阳。 破碎山河迎胜利,残馀岁月送凄凉。 松门松菊何年梦,且认他乡作故乡。 ` console.log(str.strTo2dArr('\n', ','))
运行之,输出结果如下:
[ [ ‘渺渺钟声出远方’, ‘依依林影万鸦藏。’ ],
[ ‘一生负气成今日’, ‘四海无人对夕阳。’ ],
[ ‘破碎山河迎胜利’, ‘残馀岁月送凄凉。’ ],
[ ‘松门松菊何年梦’, ‘且认他乡作故乡。’ ] ]
抗战时期,陈寅恪先生
在给傅斯年的信中,说了这样一段话:“弟之生性,非得安眠饱食,不能作文,非是既富且乐,不能作诗,平生偶有安眠饱食之时,故偶可为文,而一生从无既富且乐之日,故总做不好诗。” 虽是以调侃的以言说,恐也是寄之感慨的悟道之语。自由独立的经济生活,是自由思想与独立人格的坚强后盾与实际保障。写博这事儿,也是一样,整日疲于需求之成改,熬时碌碌,生为糊口;偶有的闲时气力,哪儿是能经得起折腾的?唯是在垒码的间隙,略做记录,积而成篇。而这番为得的糊口的奋争,也是希望将来的某天——能有既富且乐之时,谈那些想谈的,做那些想做的事,如此而已。
以上就是JavaScript 字符串实用常操纪要详情的内容,更多相关内容请关注PHP中文网(www.php.cn)!

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

メモ帳++7.3.1
使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 中国語版
中国語版、とても使いやすい

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









