如何删除两个特定字符之间的子字符串

bum*_*mpy 5 javascript regex substring

所以我有一个字符串:

"this is the beginning, this is what i want to remove/ and this is the end"
Run Code Online (Sandbox Code Playgroud)

如何使用Javascript来定位逗号和正斜杠之间的字符串?(我也想删除逗号和斜杠)

Ilm*_*nen 9

string = string.replace( /,.*?\//, '' );
Run Code Online (Sandbox Code Playgroud)

在正则表达式中,,匹配本身,.*?匹配任何字符序列(由于?修饰符而更喜欢最短匹配)并\/匹配斜杠.(斜杠需要使用反斜杠进行转义,因为它也用作正则表达式分隔符.不幸的是,JavaScript不支持替代正则表达式文字分隔符,因此您只需要应对倾斜的牙签综合症.)

请注意,上面的代码会删除字符串中从第一个逗号到第一个斜杠的所有内容.如果可能有多个逗号或斜杠,则根据您希望发生的情况,有多种方法可以修改正则表达式的行为.例如:

  • .replace( /,.*\//, '' )删除从第一个逗号到最后一个斜杠的所有内容;
  • .replace( /^(.*),.*?\//, '$1' )最后一个逗号中删除所有内容,然后删除斜杠到下一个斜杠;
  • .replace( /^(.*),.*\//, '$1' )最后一个逗号中删除所有内容,然后斜杠到字符串中的最后一个斜杠;
  • .replace( /,[^\/]*\//, '' ) 与原始正则表达式相同,即删除从第一个逗号到第一个斜杠后的所有内容(即使其间有逗号);
  • .replace( /,[^,\/]*\//, '' )删除以逗号开头并以斜杠结尾的第一个子字符串,并且中间不包含任何逗号或斜杠 ;
  • .replace( /^(.*),[^,\/]*\//, '$1' )删除以逗号开头并以斜杠结尾的最后一个子字符串,中间没有逗号或斜杠; 和
  • .replace( /^,[^,\/]*\//g, '' )删除所有以逗号开头并以斜杠结尾的子字符串,并且中间没有逗号或斜杠.

另请注意,由于regexp语法的历史怪癖,.元字符实际上将匹配换行符之外的任何字符("\n").大多数regexp实现提供了一些方法来关闭这个怪癖,并使.所有字符真正匹配,但JavaScript,由于某种原因,没有.如果你的字符串可能包含换行符,你应该用.上面的regexp 中的所有匹配项替换一些解决方法,例如[\s\S](适用于大多数PCRE样式的regexp引擎)或[^](更短,但特定于JavaScript的regexp风格).


Apu*_*urv -1

var commaIndex=str.indexOf(',')
var slashIndex=str.indexOf('/')
var finalString=str.substring(commaIndex,slashIndex)
Run Code Online (Sandbox Code Playgroud)

希望它能起作用