Javascript去除字符串中的所有中括号可通过JS正则表达式得以解决!
JS代码
var str = '这是一个字符串[html]语句[html]字符串很常见'console.log(str.replace(/\[|]/g,''))//移除字符串中的所有[]括号(不包括其内容)
//控制台输出:这是一个字符串html语句html字符串很常见
console.log(str.replace(/\[.*?\]/g,''))//移除字符串中的所有[]括号(包括其内容)
//控制台输出:这是一个字符串语句字符串很常见 以上正则表达式其符号释义:
\:将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行“\\”匹配“\”而“\(”则匹配“(”;
|:或的意思;
/g:全局搜索。由于此处要去除字符串中所有中括号,因此正则中要开启全局搜索;
.:表示除换行符和其他Unicode行终止符之外的任意字符;
*:匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,};
?:匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。(贪婪模式)
事实上,实际项目开发中,不管通过前端开发还是后端开发语言,类似的问题使用正则表达式是最佳的!
<script>var str=" ,,b!@#$4%asd^df,g&*(1士大夫"
var reg=/[^0-9,]*/g
var s=str.replace(reg,"")
alert( s)
</script>
-----------------------------------------
为了更加明白:
<script>
var str=" ,,b!@#$4%asd^df,g&*(1士大夫"
var reg=/[^0-9,]*/g
var s=str.replace(reg,"")
alert("过滤前的字符串:"+str+"\n过滤后的字符串:"+s)
</script>
------------------------------------
我本地测试没有问题!
把下面代码保存成html文件自己测试一下吧
<textarea name=a rows=10 cols=50>,,b!@#$4%a\rsd^d\ff,g&*(1士大夫\nwerwer,wer4</textarea><button onclick="c()">CiclkMe</button><textarea name=b rows=10 cols=50>显示结果</textarea>
<script>
function c(){
var str=" ,,b!@#$4%a\rsd^d\ff,g&*(1士大夫\nwerwer,wer4"
var str2=a.innerText
var reg=/[^0-9,]*/g
var s=str2.replace(reg,"")
alert("过滤前的字符串:"+str2+"\n过滤后的字符串:"+s)
b.innerText=s
}
</script>
var a="今天是星期五, 明天又可以放假了&好好休|息一下"var b=a.replace(/[&\|\\\*^%$#@\-]/g,"")
alert(b)
需要去掉什么符号,就在正则表达式中加上什么符号