我在 textarea 中有 xml 内容,可以是以下形式,
<tag value="20.434" value1="-12.334" />
或者
20.434 -12.334
我希望能够每行提取两个浮点数。
我在 textarea 中有 xml 内容,可以是以下形式,
<tag value="20.434" value1="-12.334" />
或者
20.434 -12.334
我希望能够每行提取两个浮点数。
您可以/[+-]?\d+(\.\d+)?/g
结合使用正则表达式String.match()
来解析数字并将Array.map()
它们转换为浮点数:
var regex = /[+-]?\d+(\.\d+)?/g;
var str = '<tag value="20.434" value1="-12.334" />';
var floats = str.match(regex).map(function(v) { return parseFloat(v); });
console.log(floats);
var str2 = '20.434 -12.334';
var floats2 = str2.match(regex).map(function(v) { return parseFloat(v); });
console.log(floats2);
var strWithInt = "200px";
var ints = strWithInt.match(regex).map(function(v) { return parseFloat(v); });
console.log(ints);
您总是可以将字符串加载到 jQuery 中并获取属性:
$('<tag value="20.434" value1="-12.334" />').attr('value')
$('<tag value="20.434" value1="-12.334" />').attr('value1')
在您的情况下,正则表达式可能是更好的途径。
一旦弄清楚如何从文本之间提取数字,您将使用 parseFloat ......如何提取这些数字完全取决于该文本是什么。您很可能会在 \s 上拆分整个文本,然后删除所有不是数字和点的字符。那应该让你有花车......虽然再一次,如果没有看到周围的文字是什么样子就不可能说出来。
编辑:好的,既然你已经改变了你的问题,答案是你只需获取名为 value 和 value1 的属性,然后对其中的内容运行 parse float 。如果您的文本区域包含此 XML,您需要首先解析 XML 以将属性作为对象获取。