2011-08-16 18 views
0

私は特定の値を取得しようとしている文字列を持っています。値は文字列の中央に埋められます。たとえば、文字列は次のようになります。JavaScript - 文字列の特定の値を取得するにはどうすればよいですか?

Content1Save 

抽出する値は「1」です。

このように現在、私は、文字列の左側の一部を除去するために取得するには、組み込みのsubstring関数を使用します。

MyString = "Content1Save"; 
Position = MyString; 
Position = Position.substring(7); 
alert(Position); // alerts "1Save" 

私は「保存」の部分を取り除くためとして残される必要があります1;

どうすればよいですか?

+++++++++++++++++++++++++++++++++++++++++ ANSWER

Position = Position.substr(7, 1); 

質問

これら2つの違いは何ですか?

Position = Position.substr(7, 1); 
Position = Position.substring(7, 1); 
+1

文字列の途中から数字だけを保存することは知っていますか? –

+1

文字列は一般的なパターンに従っていますか? –

+0

文字列の数字は、常に1,2,3または4です。 –

答えて

2

あなたはsubstr[MDN]方法を使用することができます。次の例では、インデックス7から始まる1文字の部分文字列を取得します。

または、正規表現を使用できます。

Position = /\d+/.exec(Position)[0]; 
+0

ありがとうございます!私はPosition = Position.substr(7、1)を使用しました。 –

1

これは、その中間部分のルールに大きく左右されます。単なる文字の場合は、Position = Position.substring(0, 1)を使用できます。番号を取得しようとしている場合は、その前の文字を削除している限り、parseIntを使用できます。

alert(parseInt("123abc")); //123 
alert(parseInt("foo123bar")); //NaN 
2

正規表現とグループを調べることをお勧めします。

正規表現は本質的にこの目的のために作られており、javascriptに組み込まれています。 Content1Saveのようなもののため 正規表現は次のようになります。

rg = /^[A-Za-z]*([0-9]+)[A-Za-z]*$/ 

次にあなたが使用してグループを抽出することができます。

正規表現で
match = rg.exec('Content1Save'); 
alert(match[1]); 

詳細はここで見つけることができます:http://en.wikipedia.org/wiki/Regular_expression

1

あなたがしている場合実際に検索しようとすると、正規表現と呼ばれるものを使う必要がなくなることがよくあります。彼らは最高の検索構文のJavaScript availsです。

var matches = Position.match(/\d+/) 
alert(matches[0]) 

そうしないと、SUBSTR年代のシリーズを使用することができますが、それはあなたがで開始する文字列であるかを知る意味:

MyString.substr(MyString.indexOf(1), 1); 

しかし、それは迷惑な少しです。

関連する問題