Javascript 使用正则表达式将数字转换为特定字符串

Javascript 使用正则表达式将数字转换为特定字符串,javascript,regex,Javascript,Regex,我似乎无法理解javascript正则表达式,所以我需要你的帮助 我需要转换以下内容: 1234567891230 进入: urn:epc:id:sgln:12345678.9123.0 我已经用一个普通的javascript算法实现了这一点(见下文),但我们需要能够配置这个转换。我只需要它的默认配置值 使用slice,它将是: var result = "urn:epc:id:sgln:" + myString.slice(0, 8) + "." + myString.slice(8, 12

我似乎无法理解javascript正则表达式,所以我需要你的帮助

我需要转换以下内容:

1234567891230

进入:

urn:epc:id:sgln:12345678.9123.0

我已经用一个普通的javascript算法实现了这一点(见下文),但我们需要能够配置这个转换。我只需要它的默认配置值

使用slice,它将是:

var result = "urn:epc:id:sgln:" + myString.slice(0, 8) + "." + 
myString.slice(8, 12) + "." + myString.slice(12);

如果您能在回答中提供解释,我将不胜感激:)

如果您想使用正则表达式进行此操作,请尝试以下操作:

var regex=/(\d{8})(\d{4})/;
var splittedNumber=regex.exec(“123456789123”);
var result=“urn:epc:id:sgln:”+splittedNumber[1]+“+splittedNumber[2]+.0”;

控制台日志(结果)如果要为此使用正则表达式,请尝试以下操作:

var regex=/(\d{8})(\d{4})/;
var splittedNumber=regex.exec(“123456789123”);
var result=“urn:epc:id:sgln:”+splittedNumber[1]+“+splittedNumber[2]+.0”;

控制台日志(结果)
您可以使用正则表达式为
12345678
9123
0
捕获3个组,并在开头和结尾使用单词边界
\b

然后使用可以获得所有元素,但不包括返回的数组中的第一个元素,因为它包含我们不需要的完全匹配

之后,可以使用点作为分隔符从数组中删除元素

let str=“1234567891230”;
let prefix=“urn:epc:id:sgln:”;

console.log(前缀+str.match(/\b(\d{8})(\d{4})(\d)\b/).slice(1.join)(“.”)
您可以使用正则表达式为
12345678
9123
0
捕获3个组,并在开头和结尾使用单词边界
\b

然后使用可以获得所有元素,但不包括返回的数组中的第一个元素,因为它包含我们不需要的完全匹配

之后,可以使用点作为分隔符从数组中删除元素

let str=“1234567891230”;
let prefix=“urn:epc:id:sgln:”;

console.log(前缀+str.match(/\b(\d{8})(\d{4})(\d)\b/).slice(1.join)(“.”)你试过什么?“我已经用一个普通的javascript算法完成了,但是我们需要能够配置这个转换。”这是什么意思?逻辑是什么?比如为什么在
8
3
后面加一个点?为什么额外的
0
?到目前为止您所做的有什么问题吗?rmlan:我在问题中包括了“javascript”算法。我对正则表达式不太熟悉,所以我基本上尝试将类似问题的片段缝合在一起。rmlan:我们希望将正则表达式存储在数据库中,这样我们就可以以各种方式转换数字,而不用硬编码。我们当前的问题是,客户测试环境不使用相同的“urn:epc:id:sgln:”前缀。您尝试了什么?“我已经用一个普通的javascript算法完成了,但是我们需要能够配置这个转换。”这是什么意思?逻辑是什么?比如为什么在
8
3
后面加一个点?为什么额外的
0
?到目前为止您所做的有什么问题吗?rmlan:我在问题中包括了“javascript”算法。我对正则表达式不太熟悉,所以我基本上尝试将类似问题的片段缝合在一起。rmlan:我们希望将正则表达式存储在数据库中,这样我们就可以以各种方式转换数字,而不用硬编码。我们当前的问题是,客户测试环境没有使用相同的“urn:epc:id:sgln:”前缀。谢谢。我想我们会继续使用你的解决方案。这意味着我们将有两个配置值;一个用于前缀(字符串),另一个用于在正确的位置插入点(正则表达式)。谢谢。我想我们会继续使用你的解决方案。这意味着我们将有两个配置值;一个用于前缀(字符串),另一个用于在正确位置插入点(正则表达式)。