我试图找出一个正则表达式在JavaScript中删除点之前的任何字符串

I am trying to figure out a regex in JavaScript for removing any strings before the dot

本文关键字:删除 JavaScript 字符串 任何 正则表达式 一个      更新时间:2023-09-26

我正在寻找一些帮助与Regex语法。我尝试了许多方法来为这种情况创建语法,但似乎都不起作用。有人能帮我一下吗?

所以我有一个例子,我试图替换字符串中"。"符号之前的所有内容,

example_ so.myname

我使用这个表达式成功地删除了"."之前的所有字符串:

var removeStrBeforeDot = params.value.replace(/('<b'>|'<nobr'>)[a-z]*'./g, "");
    removeStrBeforeDot = removeStrBeforeDot.replace(/'(.*')'<'/b'>/g, " ");
但是这个表达式的问题是,当点前面只有字母时,它工作,当有像,空格等符号时,它不起作用。例如,example so。Myname有一个空格和一个"_",在这种情况下不起作用。我喜欢做的是保持它更通用,并删除"。"之前的任何字符串要删除。任何帮助都将是非常感激的。

谢谢!

一个解决方案:

var str = 'example_ so.myname';
var result = str.replace(/[^.]*.(.*)/g , '$1');
console.log(result);
document.getElementById('el').innerHTML = result;
<div id='el'></div>


另一个解决方案:最快速,更便宜!

    var str = 'example_ so.myname';
    var result = str.slice(str.indexOf('.')+1)
    console.log(result);
    document.getElementById('el').innerHTML = result;
<div id='el'></div>

应该可以。它获取第一个点的位置,然后从该点开始收集字符串中的字符。

var dot = str.indexOf('.');
var afterDot = str.substr(dot+1);

如果有更简单的方法,就不要使用正则表达式。

你可以这样做:

st = 'example_ so.myname';
re = str.replace(/^.*'.+/g , '');
console.log(re)

我想分割可能是最简单的方法:

   alert("example_ so.myname".split(/'./)[1]);