在 JavaScript 中處理字串時,通常需要從中提取特定數字。這可能會出現在各種場景中,例如從 DOM 元素解析 ID 或從文字檔案中提取數字資料。
具體範例:從字串中提取數字
考慮像「#box2」這樣的字串,我們只需要提取數字 2。使用以下程式碼snippet:
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.
正規表示式產生器
對於更複雜的正規表示式,您可以使用正規表示式產生器工具,例如下方提供的工具:
`
函數getre(str, num) {<br> if (str === num) return "nice try";<br> var res = [<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 update() {
$ = function(x) { return document.getElementBy (x) };
var re = getre($('str' ).value, $('num').value);
$('re').innerHTML = "Numex 說話:" re "
";
}
以上是如何在 JavaScript 中從字串中提取數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!