Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript regex删除字符串开头和结尾的某些字符_Javascript_Regex_String_Replace - Fatal编程技术网

Javascript regex删除字符串开头和结尾的某些字符

Javascript regex删除字符串开头和结尾的某些字符,javascript,regex,string,replace,Javascript,Regex,String,Replace,假设我有这样一个字符串: ...hello world.bye 但是我想去掉前三个点,用替换。再见 所以输出应该是 hello world! 仅当两个条件都适用时(开始时为..,结束时为.bye),它才应匹配 我尝试使用js替换方法。你能帮忙吗?谢谢您的正则表达式将是 const rx=/\.\.\([\s\s]*?)\.再见/g const out='\n\n obar…你好,世界。再见\n obar…好的。再见\n…行\n断开。再见\n。替换(rx,`1!`) console.log(

假设我有这样一个字符串:

...hello world.bye
但是我想去掉前三个点,用
替换
。再见

所以输出应该是

hello world!
仅当两个条件都适用时(开始时为
..
,结束时为
.bye
),它才应匹配

我尝试使用js替换方法。你能帮忙吗?谢谢

您的正则表达式将是

const rx=/\.\.\([\s\s]*?)\.再见/g
const out='\n\n obar…你好,世界。再见\n obar…好的。再见\n…行\n断开。再见\n。替换(rx,`1!`)

console.log(out)
首先匹配点,捕获并重复任何字符,直到到达
.bye
,然后匹配
.bye
。然后,您可以替换为第一个捕获的组,加上感叹号:

conststr='…你好,世界,再见';

log(str.replace(/\.\.\.(.*)\.bye/,'$1!'))执行此操作实际上不需要正则表达式。虽然有点不雅观,但以下功能应该可以正常工作(显然,可以在应用程序上下文中调用任何有意义的函数):

(如果我在索引方面犯了任何愚蠢的错误,我深表歉意,但基本思想应该是显而易见的。)


至少对我来说,这比正则表达式更容易推理。当然,如果您需要处理更复杂的情况,您可能会达到正则表达式最好的程度,但我个人不会为一个简单的用例(如OP中提到的用例)而烦恼。

一个可以说更简单的解决方案:

const str = '...hello world.bye'
const newStr = /...(.+)\.bye/.exec(str)

const formatted = newStr ? newStr[1] + '!' : str

console.log(formatted)

如果字符串与正则表达式不匹配,它将返回字符串。

很抱歉,我的问题不够清楚。这对我不起作用,因为我的字符串包含多行,匹配可以发生在字符串中的任何位置,例如:
blah blah blah blah…第一次匹配。bye blah blah blah blah blah blah blah blah blah…第二次匹配。bye blah blah blah blah blah blah blah blah blah blah
const str = '...hello world.bye'
const newStr = /...(.+)\.bye/.exec(str)

const formatted = newStr ? newStr[1] + '!' : str

console.log(formatted)