在 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.getElementById(x) };
var re = getre($('str' ).value, $('num').value);
$('re').innerHTML = "Numex 说话:" re "
";
}
以上是如何在 JavaScript 中从字符串中提取数字?的详细内容。更多信息请关注PHP中文网其他相关文章!