文字列中の各単語の最初の文字を収集するにはどうすればよいですか?文字列中の各単語の最初の文字をJavascriptで取得する
String: "Java Script Object Notation"
Wanted result: "JSON"
文字列中の各単語の最初の文字を収集するにはどうすればよいですか?文字列中の各単語の最初の文字をJavascriptで取得する
String: "Java Script Object Notation"
Wanted result: "JSON"
あなたが探しているのは、提供された文字列の頭字語です。
var str = "Java Script Object Notation";
var matches = str.match(/\b(\w)/g); // ['J','S','O','N']
var acronym = matches.join(''); // JSON
注:これはHmImD
になりますHelp-me I'm Dieing
ハイフン付き/ apostrophe'd言葉のために失敗します。それがあなたの望むものでなければ、スペースに分割して、最初の手紙を手に取ってもらいたいかもしれません。
私はあなたが
'Aa Bb'.match(/\b\w/g).join('')
説明でこれを行うことができると思います。それらを置く、:英数字以外の文字(ワード境界\b
後すなわち)の後に発生するすべての/g
英数字\w
を入手義和によって.join('')
つの文字列のすべてを.match()
を持つ配列と参加あなたは、単にすべて大文字を選択する検討することができますやりたいT:どのようにこの程度
'JavaScript Object Notation'.match(/[A-Z]/g).join('')
ニース、ありがとう! –
私は正規表現がこのような状況のために残虐であると思います。 – JesseBuesking
@JesseB:分かれている別の解決法は、冗長であり、複数のスペース文字と、ドットやコンマのようなその他の区切り文字を心配する必要があります。 – hugomg
を:
var str = "", abbr = "";
str = "Java Script Object Notation";
str = str.split(' ');
for (i = 0; i < str.length; i++) {
abbr += str[i].substr(0,1);
}
alert(abbr);
これはそれを行う必要があります。
var s = "Java Script Object Notation",
a = s.split(' '),
l = a.length,
i = 0,
n = "";
for (; i < l; ++i)
{
n += a[i].charAt(0);
}
console.log(n);
TRY -
var text = '';
var arr = "Java Script Object Notation".split(' ');
for(i=0;i<arr.length;i++) {
text += arr[i].substr(0,1)
}
alert(text);
最も簡単な方法はJavaScriptのための正規表現
var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join('');
正規表現のバージョンなしのは、ECMAScriptの6歳以上にユニコードと互換性がありません。 、 "å"などの文字をサポートしたい人は、 regex以外のバージョンのスクリプトに依存しています。
イベントはバージョン6のときに\ uでUnicodeを指定する必要があります。
詳細:(関数型プログラミングから)map
を使用https://mathiasbynens.be/notes/es6-unicode-regex
'use strict';
function acronym(words)
{
if (!words) { return ''; }
var first_letter = function(x){ if (x) { return x[0]; } else { return ''; }};
return words.split(' ').map(first_letter).join('');
}
reduce
関数を使用してさらに別のオプション:
var value = "Java Script Object Notation";
var result = value.split(' ').reduce(function(previous, current){
return {v : previous.v + current[0]};
},{v:""});
$("#output").text(result.v);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id="output"/>
@BotNet欠陥:
==>私は動物
(私はMのをキャッチするために使用される)ための: 私は正規表現のチュートリアルの3日間を耐え難いほどの後に、それを解決したと思います単語境界、それは私のためにそのように動作するようだ。偉大な例に追加する
/(\s|^)([a-z])/gi
は、あなたがES6
const x = "Java Script Object Notation".split(' ').map(x => x[0]).join('');
console.log(x); // JSON
でこのようにそれを行うことができ、これはあまりにも動作しますが、それを無視してください、私は
:-)ここで少しナッツ行ってきましたconst [j,s,o,n] = "Java Script Object Notation".split(' ').map(x => x[0]);
console.log(`${j}${s}${o}${n}`);
ニース..ありがとう! –
@Armando:2つの回答がすばやく連続して投稿されれば、まあまあです。 – hugomg
はウムラウトではうまく動作しません。 –