javascript中的正则表达式

javascript中的正则表达式,javascript,regex,Javascript,Regex,我有一个像lo0.1、lo0.2和lo0.0这样的输入字符串 我想将.0、.1和.2替换为null。所以基本上我希望输出是lo0,当它是lo0.1、lo0.2和lo0.0时 我正在使用以下代码: var reg = '\d'; if(port_key.getString().contains('.'+'reg')){ //parent_port_key.getString().setValue(port_key.getString()); parent_port_key.setValue

我有一个像lo0.1、lo0.2和lo0.0这样的输入字符串

我想将.0、.1和.2替换为null。所以基本上我希望输出是lo0,当它是lo0.1、lo0.2和lo0.0时

我正在使用以下代码:

var reg = '\d';
if(port_key.getString().contains('.'+'reg')){
    //parent_port_key.getString().setValue(port_key.getString());
parent_port_key.setValue(port_key.getString());
parent_port_key=(parent_port_key).replace('.'+'reg','');
}
请让我知道它为什么不起作用。。
我还可以做什么。

是一个代表任何字符的预留正则表达式字符。你需要用反斜杠来逃避它 reg也是一个包含字符串的变量,所以不要把它放在paranethes中


因此,它应该包含并替换
\.+reg

您可以使用此正则表达式
/\.\d$/
替换尾随的
.n
如下:

var test = "lo0.2";
var output = test.replace(/\.\d$/, "");
alert(output);   // "lo0"
var re = /\.\d$/;
if (port_key_getString().search(re) != -1) {
    parent_port_key.setValue(port_key_getString().replace(re, ""));
}
var str = "lo0.1 and lo0.2 and lo0.0";
str.replace(/(\.\d)/g, '');
这一正则表达式将适用于所有单位数值。如果需要它处理多个数字值,也可以使用
/\.\d+$/
来完成

作为解释,正则表达式表示匹配一个句点,后跟一个数字,后跟字符串的结尾,并将其替换为零(这将从字符串的结尾删除它)。句点前面的反斜杠是必需的,因为句点本身是一个特殊的正则表达式字符,所以为了匹配文字句点,我们必须用反斜杠将其转义

我不知道您在代码中到底想做什么,但我认为您可以这样做:

var test = "lo0.2";
var output = test.replace(/\.\d$/, "");
alert(output);   // "lo0"
var re = /\.\d$/;
if (port_key_getString().search(re) != -1) {
    parent_port_key.setValue(port_key_getString().replace(re, ""));
}
var str = "lo0.1 and lo0.2 and lo0.0";
str.replace(/(\.\d)/g, '');
大概是这样的:

var test = "lo0.2";
var output = test.replace(/\.\d$/, "");
alert(output);   // "lo0"
var re = /\.\d$/;
if (port_key_getString().search(re) != -1) {
    parent_port_key.setValue(port_key_getString().replace(re, ""));
}
var str = "lo0.1 and lo0.2 and lo0.0";
str.replace(/(\.\d)/g, '');

关于正则表达式,我可以建议您访问以下网站:

它包含许多正则表达式(我发送给您的链接直接针对字符串类别)。 此外,还可以测试正则表达式(也可以使用客户端引擎-Javascript)

我相信在那里你可以找到你想要的正则表达式,你也可以在每次需要新的正则表达式时引用它

每当我在项目中需要正则表达式时,我都会使用它。

试试这个:

s = "lo0.1";
s = s.replace(/\.\d$/, "");
您应该在斜杠(而不是引号)之间分隔正则表达式