この場合、文字列は次のとおりです。
one two three four five six seven eight nine ten
この文字列の n 番目の単語をどのように選択しますか?
この場合の単語は、空白で先行、後続、または囲まれた 1 つ以上の文字のグループです。
この場合、文字列は次のとおりです。
one two three four five six seven eight nine ten
この文字列の n 番目の単語をどのように選択しますか?
この場合の単語は、空白で先行、後続、または囲まれた 1 つ以上の文字のグループです。
正規表現を使用しないことを示唆する回答にもかかわらず、正規表現の解決策は次のとおりです。
var nthWord = function(str, n) {
var m = str.match(new RegExp('^(?:\\w+\\W+){' + --n + '}(\\w+)'));
return m && m[1];
};
必要に応じて式を調整する必要がある場合があります。ここにいくつかのテストケースがあります https://tinker.io/31fe7/1
私はこれに使用split
します-
var str = "one two three four five six seven eight nine ten";
nth = str.split(/\s+/)[n - 1];
関数 getWord(str,pos) { var get=str.match(/\S+\S/g); get[pos-1] を返します。 } //ここに例があります var str="1 2 3 4 5 6 7 8 9 10 "; var get_5th_word=getWord(str,5); アラート (get_5th_word);
それは簡単です :)
これは正規表現のみのソリューションですが、他の回答の方がパフォーマンスが優れていると思います。
/^(?:.+?[\s.,;]+){7}([^\s.,;]+)/.exec('one two three four five six seven eight nine ten')
単語の区切りとして、空白、ピリオド、コンマ、およびセミコロン (の連続) を使用します。あなたはそれを適応させたいかもしれません。7
手段Nth word - 1
。_
より「動的」にするには:
var str = 'one two three four five six seven eight nine ten';
var nth = 8;
str.match('^(?:.+?[\\s.,;]+){' + (nth-1) + '}([^\\s.,;]+)'); // the backslashes escaped
ライブデモ: http://jsfiddle.net/WCwFQ/2/
スペースを分割して、X 番目の要素を取得できます。
var x = 'one two three four five six seven eight nine ten';
var words = x.split(' ');
console.log(words[5]); // 'six'
文字列をスペースで分割し、配列としてアクセスできます。
var sentence = 'one two three four five six seven eight nine ten';
var exploded = sentence.split(' ');
// the array starts at 0, so use "- 1" of the word
var word = 3;
alert(exploded[word - 1]);
物事を数えることは、実際には正規表現を使用する必要があるものではありません。代わりに、区切り文字 (特定のケースではスペース) に基づいて文字列を分割し、配列の n-1 番目のインデックスにアクセスしてみてください。
Javascript コード :
>"one two three four".split(" ");
["one", "two", "three", "four"]
>"one two three four".split(" ")[2];
>"three"
var words = "one two three four five six seven eight nine ten".split(" ");
var nthWord = words[n];
もちろん、最初に n 番目の単語が存在することを確認する必要があります。
var nthWord = function(str, n) {
return str.split(" ")[n - 1]; // really should have some error checking!
}
nthWord("one two three four five six seven eight nine ten", 4) // ==> "four"