「、」コンマの前にすべてを抽出しようとしています。 JavaScriptやjQueryでこれを行うにはどうすればよいですか?私はこれを試してみましたそして働かない。
1345 albany street, Bellevue WA 42344
私はただ番地をつかみたいだけです。
var streetaddress= substr(addy, 0, index(addy, '.'));
var streetaddress= addy.substr(0, addy.indexOf(','));
それぞれの方法が何をするのかについての決定的な情報を得るには最適な場所ではありませんが( mozilla開発者ネットワーク がそのためには良いです) w3schools.com は、構文を紹介するのに役立ちます。
var streetaddress = addy.split(',')[0];
これを試して:
streetaddress.substring(0, streetaddress.indexOf(','));
//split string into an array and grab the first item
var streetaddress = addy.split(',')[0];
また、読みやすくするために、キャメルケース(streetAddress)を使って変数に名前を付けることをお勧めします。
あなたがそれが短いのが好きなら、単に RegExp を使ってください:
var streetAddress = /[^,]*/.exec(addy)[0];
david Gの答えとほとんど同じですが、匿名関数は含まれていません。
s = s.substr(0, s.indexOf(',') === -1 ? s.length : s.indexOf(','));
この場合、substr
の2番目の引数は長さであり、サブストリングは0から始まっていることがわかります。
一番上の答えは一般的な解決策ではありません。文字列に探している文字が含まれていない場合、望ましくない動作が起こるためです。
一般的な場合に正しい振る舞いをしたい場合は、トップの答えではなく、この方法またはDavid Gの方法を使用してください。
正規表現と分割メソッドも動作しますが、この特定の問題のためにやや遅く/やり過ぎるかもしれません。
var streetaddress = addy.substr(0, addy.indexOf('.'));
( JavaScriptチュートリアル 、特に 文字列関数に関する部分 を読んでください。 - ))
shift()
を使うこともできます。
var streetaddress = addy.split(',').shift();
MDN Web Docsによると、
shift()
メソッドは、配列からfirst要素を削除し、その削除された要素を返します。このメソッドは配列の長さを変更します。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift
var newString = string.substr(0,string.indexOf(','));
検索文字が含まれていない場合にそのままの元の文字列を返したい場合は、無名関数(クロージャ)を使用できます。
var streetaddress=(function(s){var i=s.indexOf(',');
return i==-1 ? s : s.substr(0,i);})(addy);
これはより一般的にすることができます。
var streetaddress=(function(s,c){var i=s.indexOf(c);
return i==-1 ? s : s.substr(0,i);})(addy,',');