第一种:使用正则表达式加字符串替换。问题是可以直接把英文括号及里面的内容删除,但是对中文括号处理不了。只好先替换为英文括号,然后再全局替换。
let originalString = "西溪阳光中心未来悦(公寓)(商业)";
// let cleanedString = originalString.replace(/\(\w+\)/, "");
// console.log(cleanedString); // 输出: 西溪阳光中心未来悦
// return originalString.replace(/[(\w+)]/g, '');
// return originalString.replace(/([^)]*\)/g,"");
// return originalString.replace(/\([^\)]*\)/g,"");
// originalString.replace(/\([^\)]*\)/g,"");
var txt = originalString.replace(/(/g,"(");
originalString = txt.replace(/)/g,")");
return originalString.replace(/\([^\)]*\)/g,"");
它的优点很显然:能处理中文双括号,英文双括号,前面是英文括号后面是中文括号,前面是中文括号后面是英文括号的各种情况。
第二种方式:用字符串处理函数split。
realList[i].real_estate_name = realList[i].real_estate_name.split(')')[0];
优点是代码简短,很有针对性。但是对英文双括号,前面是英文括号后面是中文括号,前面是中文括号后面是英文括号的各种非正常情况无法精确处理。
第三种方式:使用正则表达式。适配中英文括号。显然这个是最佳方案,代码简洁还适配所有异常情况。
realList[i].real_estate_name = realList[i].real_estate_name.replace(/[\(\(][^\)\)]*[\)\)]/g, '');