正则表达式以排除nodejs中的字符串/字符

时间:2017-11-17 07:47:44

标签: node.js regex

目前我的变量有turnallplugsoffR1,turnallplugsonR1。 我想从字符串中排除R1,并在nodejs中的变量中只得到turnallplugsoff。 你能帮助我实现同样的目标吗? dataval =" turnallplugsoffR1"

var room_value=dataval.match(/R[0-9]+/i); //matched R1/R2 any other string
    console.log(excl); // i want only turnallplugsoff. I dont want R1/R2 
    console.log(room_value[0]);

2 个答案:

答案 0 :(得分:1)

您可以删除R后跟字符串末尾的任意1位数字:

var room_value=dataval.replace(/R\d+$/, '')

<强>详情

  • R - R来信
  • \d+ - 一位或多位
  • $ - 字符串结束。

&#13;
&#13;
var dataval="turnallplugsoffR1";
var room_value=dataval.replace(/R\d+$/, '');
console.log(room_value);
&#13;
&#13;
&#13;

您也可以使用

通过一个匹配操作获取这两个值
dataval.match(/^(.*)(R\d+)$/)

此处,^匹配字符串的开头,(.*)捕获到组1中的任何0+  除了换行符之外的字符,直到最后R,后跟字符串(R\d+)$末尾的数字,将R +数字捕获到第2组。

参见JS演示:

&#13;
&#13;
var dataval="turnallplugsoffR1";
var res = dataval.match(/^(.*)(R\d+)$/);
if (res) {
  console.log(res[1]); // turnallplugsoff
  console.log(res[2]); // R1
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

只需将字符串拆分为R1并获得所需的值。

dataval="turnallplugsoffR1"
var room_value= dataval.split('R1');
alert(data[0]);