在javascript中使用正则表达式来删除子字符串

时间:2012-08-31 11:45:05

标签: javascript regex

有一些字符串

"string numbe1 fdsf gfdgfdgf (value1)"
"string numbe2 fdsf gfdgfdgf (value2)"
"string numbe3 fdsf gfdgfdgf (value3)"
"string numbe5 fdsf gfdgfdgf (value1)"
"string numbe5 fdsf gfdgfdgf (value2)"

(valueN)可以是(value1)(value2)(value3)。我需要使用javascript正则表达式从原始字符串中删除它。所以newString必须是string numbe1 fdsf gfdgfdgf

这就是我做的事情(哪些不能按我的意愿运作)

var newString = originalString.replace(/(value1)|(value2)|(value3)/g,"") ;

返回"1 ()"

我该如何解决?

6 个答案:

答案 0 :(得分:1)

您需要转义括号,并且在.

之前还有一个额外的replace
"string numbe5 fdsf gfdgfdgf (value2)".replace(/\(value[1-3]\)/, '')

答案 1 :(得分:0)

尝试使用

var newString = originalString.replace(/\(value\d\)/g,"") ;

答案 2 :(得分:0)

尝试以下方法:

> var s = "string numbe1 fdsf gfdgfdgf (value1)";
> s.replace(/^(.*) \(value[1-3]\)$/, '$1');
"string numbe1 fdsf gfdgfdgf"

答案 3 :(得分:0)

我会使用这个正则表达式:

"string numbe5 fdsf gfdgfdgf (value2)".replace(/ \(value[123]\)/, '')

答案 4 :(得分:0)

不完全可扩展,但如果您的字符串格式始终相同,那么您可以这样做:

var str = "string numbe1 fdsf gfdgfdgf (value1)";
str = str.slice(0, str.length-8));​

答案 5 :(得分:0)

代码中有错误,请使用下面给出的代码

<script>
function myFunction()
{
var str="string numbe1 fdsf gfdgfdgf (value2)"; 
var n=str.replace(/(\(value1\)|\(value2\)|\(value3\))/g," ");
alert(n);
}
</script>