2012-01-18 101 views
1

我想获得一些textarea文本并用·替换所有项目符号html实体•JavaScript替换()一个html实体与另一个html实体

通常的方法str.replace(/•/g,"·");不起作用。

任何意见,将不胜感激。

+0

一切正常。显示你的问题jsFiddle,并请告诉我们 - 什么浏览器有这个问题? – c69 2012-01-18 09:20:41

+0

这个项目符号是像这样编码还是来自列表元素? – giker 2012-01-18 09:21:31

+1

工作得很好:http://jsfiddle.net/yXGD4/1/ – m90 2012-01-18 09:23:37

回答

3

当您从文本区域获取文本值时,它已经转换为其实际字符。要做到在该字符串的字符串替换,要么

  1. 转换的所有字符的HTML实体同行,然后用你正在做或
  2. 在正则表达式直接使用的字符是什么进行。

下面是第二种方法的示例。

var newText = oldText.replace(/•/g, ""); 

你可以用例子here来捣鼓。

如果你想要去与第一种方法,请参阅本question及其答案的途径字符一段文字转化为相应的HTML实体。

+1

提供的代码删除了项目符号点,jsfiddle代码用文本“[DELETED]”替换它们,但是原理当然很清楚。对于问题中的操作,替换字符串应该是'“·”',或者等同于''“”。如果意图是要替换像'•'这样的字符串,如果用户输入字面意思,那么这是一个不同的问题。 – 2012-01-18 12:45:22

2

如果你想做到这一点没有jQuery的:

var myTextarea = document.getElementById('id_of_your_textarea'); 
myTextarea.value = myTextarea.value.replace(/•/g, '·'); 

的jQuery:

$("#myTextarea").val($("#myTextarea").val().replace(/•/g, '·')); 

.val()将获得从输入元素的值,.val('str')将设置一个值。