2011-11-26 11 views

答えて

69

あなたが探しているのは、提供された文字列の頭字語です。

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言葉のために失敗します。それがあなたの望むものでなければ、スペースに分割して、最初の手紙を手に取ってもらいたいかもしれません。

+0

ニース..ありがとう! –

+0

@Armando:2つの回答がすばやく連続して投稿されれば、まあまあです。 – hugomg

+0

はウムラウトではうまく動作しません。 –

15

私はあなたが

'Aa Bb'.match(/\b\w/g).join('') 

説明でこれを行うことができると思います。それらを置く、:英数字以外の文字(ワード境界\b後すなわち)の後に発生するすべての/g英数字\wを入手義和によって.join('')


つの文字列のすべてを.match()を持つ配列と参加あなたは、単にすべて大文字を選択する検討することができますやりたいT:どのようにこの程度

'JavaScript Object Notation'.match(/[A-Z]/g).join('') 
+0

ニース、ありがとう! –

+0

私は正規表現がこのような状況のために残虐であると思います。 – JesseBuesking

+0

@JesseB:分かれている別の解決法は、冗長であり、複数のスペース文字と、ドットやコンマのようなその他の区切り文字を心配する必要があります。 – hugomg

0

を:

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); 

Working Example.

0

これはそれを行う必要があります。

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); 
1

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); 

デモ - http://jsfiddle.net/r2maQ/

7

最も簡単な方法はJavaScriptのための正規表現

var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join(''); 
0

正規表現のバージョンなしのは、ECMAScriptの6歳以上にユニコードと互換性がありません。 、 "å"などの文字をサポートしたい人は、 regex以外のバージョンのスクリプトに依存しています。

イベントはバージョン6のときに\ uでUnicodeを指定する必要があります。

詳細:(関数型プログラミングから)mapを使用https://mathiasbynens.be/notes/es6-unicode-regex

2

'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(''); 
} 
0

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"/>

0

@BotNet欠陥:

==>私は動物

(私はMのをキャッチするために使用される)ための: 私は正規表現のチュートリアルの3日間を耐え難いほどの後に、それを解決したと思います単語境界、それは私のためにそのように動作するようだ。偉大な例に追加する

/(\s|^)([a-z])/gi 
1

は、あなたが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}`);