为什么';这个JavaScript函数不能逐个删除方括号吗? var asdf=“a[3]>b[5]>c[1]” 函数removebracket(){ var newstring=asdf.replace(/\/[^\/]*$/,“”) 警报(新闻字符串); }
您的正则表达式不会执行类似于删除方括号的操作—它看起来像是用于从路径中删除部分。 这将删除方括号:为什么';这个JavaScript函数不能逐个删除方括号吗? var asdf=“a[3]>b[5]>c[1]” 函数removebracket(){ var newstring=asdf.replace(/\/[^\/]*$/,“”) 警报(新闻字符串); },javascript,regex,Javascript,Regex,您的正则表达式不会执行类似于删除方括号的操作—它看起来像是用于从路径中删除部分。 这将删除方括号: var asdf = "a[3] > b[5] > c[1]" function removebracket(){ var newstring = asdf.replace(/\/[^\/]*$/, '') alert(newstring); } <a href="#" onClick="javascript:removebracket();"> remove squa
var asdf = "a[3] > b[5] > c[1]"
function removebracket(){
var newstring = asdf.replace(/\/[^\/]*$/, '')
alert(newstring);
}
<a href="#" onClick="javascript:removebracket();"> remove square brackets one by one </a>
对您的正则表达式进行一点解释:
var newstring = asdf.replace(/\[|\]/g, '');
第一个和最后一个/
之间的字符串是正则表达式
/\/[^\/]*$/
这里的\/
与/
匹配,因为\
用于转义特殊字符,如/
\/[^\/]*$
方括号[]
之间的所有内容都将恰好匹配一个字符<括号内的code>^表示它将匹配除下一个字符以外的所有字符。因此,[^\/]
将匹配除/
之外的所有内容
\/[^\/]*$
*
与前一个字符的零个或多个匹配
最后,$
匹配字符串或换行符的结尾
将它与
/foo/bar
一起使用,您将得到/foo
实际上,我需要在每次迭代中删除最后一个方括号