Javascript 拆分字符串和分隔值&;单元

Javascript 拆分字符串和分隔值&;单元,javascript,regex,Javascript,Regex,我需要检查字符串是否具有以下格式:1234g、1234g、1.234kg或1.234 kg 这意味着有一个数值,之后是单位“g”或“kg”,它们之间有或没有空格 不知道如何在正则表达式中添加单位: string.match(/^[0-9]+$/) 检查之后,我需要拆分字符串以仅获取数值。我该怎么做?试试这个: var match = string.match(/^(\d+(?:\.\d+)?)\s?k?g$/); var numericValue = match ? match[1] : nu

我需要检查字符串是否具有以下格式:
1234g
1234g
1.234kg
1.234 kg
这意味着有一个数值,之后是单位“g”或“kg”,它们之间有或没有空格

不知道如何在正则表达式中添加单位:

string.match(/^[0-9]+$/)
检查之后,我需要拆分字符串以仅获取数值。我该怎么做?

试试这个:

var match = string.match(/^(\d+(?:\.\d+)?)\s?k?g$/);
var numericValue = match ? match[1] : null;

下面是一个

如果您想使用replace而不是regex,这个方法很有效

示例中所需的只是函数removeKg():

以下是拆分值和单位的一种方法:
[
“1s”,
“0.3毫秒”,
"  $ 20",
“10公斤”
]
.forEach(测试=>{
var unit=test.trim().split(/\d+/g).filter(n=>n.pop().trim(),
value=test.trim().split(unit).filter(n=>n)[0]。trim()
console.log({value,unit})

})
也需要解释小数
,我错过了。更新了答案。
[\d.]+
在我看来很懒(
…1…
?)<代码>\d+(\.\d+)会更准确。是否可以添加要更改的函数。?1234在通过正则表达式进行检查之前应变为1.234…是的,您可以使用
var match=string.replace(',',')).match(…)
BTW:如果您只想测试某个正则表达式模式的字符串,请使用正则表达式的
test
方法,而不是字符串的
match
<html>
<head>
    <style><!-- Your Styles --></style>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script language="javascript">

        var a = ['1234g', '1234 g', '1.234kg', '1.234 kg'];

        $(document).ready(function() {
            for (var i = 0; i < a.length; i++) {
                $('#output').append('<p>' + removeKg(a[i]) + '</p>');
            }
        });

        function removeKg(x) {
            return x.replace('k','').replace('g','').replace(' ','');
        }

    </script>
</head>
<body>
    <div id="output">
        <!-- Results here -->
    </div>
</body>
</html>
1234

1234

1.234

1.234