所以我有一个字符串:
"this is the beginning, this is what i want to remove/ and this is the end"
如何使用Javascript来定位逗号和正斜杠之间的字符串? (我也想删除逗号和斜杠)
答案 0 :(得分:9)
string = string.replace( /,.*?\//, '' );
在regexp,,
匹配本身,.*?
匹配任何字符序列(由于?
修饰符而更喜欢最短匹配)和{{1}匹配斜杠。 (斜杠需要使用反斜杠进行转义,因为它也用作正则表达式分隔符。不幸的是,JavaScript不支持备用regexp文字分隔符,因此您只需要处理leaning toothpick syndrome。)
请注意,上面的代码会删除字符串中斜杠后面的 first 逗号到 first 中的所有内容。如果可能有多个逗号或斜杠,则根据您希望发生的情况,有多种方法可以修改正则表达式的行为。例如:
\/
删除从第一个逗号到 last 斜杠的所有内容; .replace( /,.*\//, '' )
删除 last 逗号中的所有内容,然后删除斜杠到下一个斜杠; .replace( /^(.*),.*?\//, '$1' )
删除 last 逗号中的所有内容,然后斜线到字符串中的 last 斜杠; .replace( /^(.*),.*\//, '$1' )
与原始正则表达式相同,即删除从第一个逗号到第一个斜杠后的所有内容(即使中间还有其他逗号); .replace( /,[^\/]*\//, '' )
删除以逗号开头并以斜杠结尾的第一个子字符串,之间不包含任何逗号或斜杠; .replace( /,[^,\/]*\//, '' )
删除以逗号开头并以斜杠结尾的 last 子字符串,中间没有逗号或斜杠;和.replace( /^(.*),[^,\/]*\//, '$1' )
删除所有以逗号开头并以斜杠结尾的子字符串,并且中间没有逗号或斜杠。另请注意,由于regexp语法的历史怪癖,.replace( /^,[^,\/]*\//g, '' )
元字符实际上将匹配任何字符,除了换行符(.
)。大多数regexp实现提供了一些关闭这个怪癖的方法,并使"\n"
真正匹配所有字符,但JavaScript由于某种原因没有。如果您的字符串可能包含换行符,则应将上面的regexp中的所有.
替换为.
,例如[\s\S]
(适用于大多数PCRE样式的regexp引擎)或{{1 (更短,但特定于JavaScript的正则表达式风格)。
答案 1 :(得分:2)
由于您的问题标有正则表达式,因此您似乎需要.replace
:
return str.replace(/, this is what i want to remove\//, "");
如果您不知道其间的字符串,请使用
/,(.+?)\//
或使用*
代替+
如果字符串也可能为空
使用字符串函数,它将是
var cpos = str.indexOf(","),
spos = str.indexOf("/");
if (cpos > -1 && spos > cpos)
return str.substr(0, cpos)+str.substr(spos+1);
答案 2 :(得分:0)
return str.split(',')[1].split('/')[0];
答案 3 :(得分:-1)
var commaIndex=str.indexOf(',')
var slashIndex=str.indexOf('/')
var finalString=str.substring(commaIndex,slashIndex)
希望它能运作