0

有一些字符串

"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 ()"

我该如何解决?

4

6 回答 6

1

你需要转义括号,并且你有一个额外的.权利replace

"string numbe5 fdsf gfdgfdgf (value2)".replace(/\(value[1-3]\)/, '')
于 2012-08-31T11:47:38.727 回答
0

尝试使用

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

于 2012-08-31T11:49:48.947 回答
0

尝试以下操作:

> var s = "string numbe1 fdsf gfdgfdgf (value1)";
> s.replace(/^(.*) \(value[1-3]\)$/, '$1');
"string numbe1 fdsf gfdgfdgf"
于 2012-08-31T11:51:53.003 回答
0

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

"string numbe5 fdsf gfdgfdgf (value2)".replace(/ \(value[123]\)/, '')
于 2012-08-31T11:53:11.613 回答
0

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

var str = "string numbe1 fdsf gfdgfdgf (value1)";
str = str.slice(0, str.length-8));​
于 2012-08-31T11:54:07.897 回答
0

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

<script>
function myFunction()
{
var str="string numbe1 fdsf gfdgfdgf (value2)"; 
var n=str.replace(/(\(value1\)|\(value2\)|\(value3\))/g," ");
alert(n);
}
</script>
于 2012-08-31T12:19:39.393 回答