ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で文字列から数値を抽出するにはどうすればよいですか?
JavaScript で文字列を操作する場合、多くの場合、文字列から特定の数値を抽出する必要があります。これは、DOM 要素からの ID の解析やテキスト ファイルからの数値データの抽出など、さまざまなシナリオで発生する可能性があります。
具体的な例: 文字列からの数値の抽出
「#box2」のような文字列。数字の 2 だけを抽出する必要があります。次のコードを使用します。スニペット:
var thestring = $(this).attr('href'); var thenum = thestring.replace(/(^.+)(\w\d+\w)(.+$)/i, '');
は引き続きアラートで「#box2」を返します。その理由は、使用されている正規表現が数字の前後の数字以外の文字を正しくキャプチャしていないためです。
特定の例の解決策
この問題を解決するには「#box2」の具体的な例では、次のコードを使用できます:
var thenum = thestring.replace(/^\D+/g, ''); // Replace all leading non-digits with nothing
この正規表現は、先頭の数字以外の文字をすべて削除します。
正規表現を使用した一般的な解決策
より複雑な文字列の場合、より一般的なアプローチは、文字列のみに一致する正規表現を使用することです。数値:
thenum = "foo3bar5".match(/\d+/)[0] // "3"
この式は、最初の連続する数字のセットを返します。 string.
Regex Generator
より複雑な正規表現については、以下に示すような正規表現ジェネレータ ツールを使用できます。
`
関数getre(str, num) {<br> if (str === num) return "nice try";<br> var res = [</p><pre class="brush:php;toolbar:false">[/^\D+/g, /\D+$/g], // Remove leading/trailing non-digits [/^\D+|\D+$/g], // Remove both leading and trailing non-digits [/\D+/g], // Remove all non-digits [/\D.*/g], // Remove all non-digits from the end /.*\D/g, // Remove all non-digits from the start /^\D+|\D.*$/g, // Remove non-digits from both ends /.*\D(?=\d)|\D+$/g, // Remove non-digits followed by digits or from the end
];
for (var i = 0; i
if (str.replace(res[i], "") === num) return 'num = str.replace(/' + res[i].source + '/g, "")';を返しますidea";
}
$ = function(x) { return document.getElementById(x) };
var re = getre($('str' ).value, $('num').value);
$('re').innerHTML = "Numex が話す: <コード>" re "";
}
`:
以上がJavaScript で文字列から数値を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。