基本的javascript - 从字符串中取出整数值[重复]

Posted

技术标签:

【中文标题】基本的javascript - 从字符串中取出整数值[重复]【英文标题】:basic javascript - taking the integer value out of a string [duplicate] 【发布时间】:2014-11-11 14:51:49 【问题描述】:

好了,虽然我搜索了学习资源我找不到我想要的确切的事情。请帮助改善这篇文章,而不是向下的投票,使所有新学习者可以提高自己的知识。 P>

让我们假设有一个变量 P>

var y = "number12";

var z ="";
    如何使Z = 12(如何只取整数值输出Y字符串变量) LI> 如何使Z = number13(增加一个到 “数字” 12) LI>

【问题讨论】:

看一看为“正则表达式”。或者你可以尝试这种模式的一个字符串分割成非数部分和数字部分(开始于字符串的结尾,检查,如果这个角色仍然是0-9,倒退,重复)。递增数部分和结合这两个部分再次返回到一个字符串。跨度> 是否串总是以数字结束?是number文本常量? SPAN> @亚历K.是数是常数跨度> 【参考方案1】:

使用 RegEx 提取数字,然后使用 parseInt 将字符串 "12" 转换为数字 12

var y = "number12";
var x = parseInt( y.match(/\d+/) );
alert(x)

【讨论】:

x = parseInt(y.match(/[\d\.]*/)); 有什么区别?和 var x = parseInt( y.match(/\d+/) ); \d 匹配单个数字,例如 1\d+ 匹配一个或多个数字,例如 12\d* 将匹配零位或一位数字。[\d\.]* 似乎不起作用。有关正则表达式的更多信息:regular-expressions.info/tutorial.html【参考方案2】:

你可以试试这个,

var y = "number12";
x = parseInt(y.match(/[\d\.]*/));

【讨论】:

【参考方案3】:

鉴于:@Alex K. 是的,数字是一个常数

简单地说:

var x = "number" + (+y.substr(6) + 1);

【讨论】:

@Alex K. 你能解释一下 x = parseInt(y.match(/[\d\.]*/)); 之间有什么区别吗?和 var x = parseInt( y.match(/\d+/) );【参考方案4】:

我同意matthias

var input = "number12";

// define a regular expression to match your pattern
var re = /(\D+)(\d+)/;

// execute the regexp to get an array of matches
var parsed = re.exec(input);  // ['number12', 'number', '12']

// parse an integer value of the number
parsed[2] = parseInt(parsed[2], 10); // '12' ==> 12

// increment the number
parsed[2] += 1; // 12 ==> 13

// rejoin the string
input = parsed[1] + parsed[2]; // 'number' + 13 ==> 'number13'

【讨论】:

以上是关于基本的javascript - 从字符串中取出整数值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从整数类型的数组中取出索引子集[重复]

正则表达式基本用法

如何在 UIAutomation 中从句子中取出特定的单词?

JavaScript基本语法

如果使用JavaScript同时包含整数和字符串,如何从CRM的文本字段的单行中检索整数值

整数对最小和