Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式和jQuery删除html特殊字符_Jquery_Regex - Fatal编程技术网

使用正则表达式和jQuery删除html特殊字符

使用正则表达式和jQuery删除html特殊字符,jquery,regex,Jquery,Regex,匹配以下html字符串中的特殊字符所需的正则表达式是什么 €20.000.000,00 最后,我想从数字中去掉欧元符号。目前,我的代码如下所示: num = $("#number").html(); num.replace('€',''); $("number").html(num) 但我当然需要替换“€”使用正确的正则表达式。.replace返回其结果,它不会在适当的位置修改字符串。使用jQuery操作文本时,HTML缩写&euro已被其实际

匹配以下html字符串中的特殊字符所需的正则表达式是什么

€20.000.000,00
最后,我想从数字中去掉欧元符号。目前,我的代码如下所示:

num = $("#number").html();
num.replace('€','');

$("number").html(num)

但我当然需要替换
“€”
使用正确的正则表达式。

.replace
返回其结果,它不会在适当的位置修改字符串。

使用jQuery操作文本时,HTML缩写
&euro
已被其实际的unicode值替换,即真正的单个字符
。一个引用unicode字符值的正则表达式应该可以帮到你

var x = $('#number').html();
x = x.replace(/\u20ac/, '');
$('#number').html(x); 

对从浏览器页面提取的HTML执行正则表达式是不可靠的,因为从浏览器返回的HTML在每个浏览器中通常是不同的。例如,IE将删除属性周围的引号,并更改属性的顺序,因为它正在重建HTML,而不是返回原始HTML。HTML实体也是如此(您可能得到也可能得不到实际的实体)。您通常可以找到一段不间断的文本,但任何比这更复杂的内容都会很麻烦


在食物被浏览器消化和反刍之前,最好先尝试进入食物链。转到浏览器尚未操作任何内容的实际页面源代码,或者让服务器将所需的值直接放入javascript变量中(如果可能)。

replace()
也适用于常规字符串,因此它应该可以工作。我想可以,但不是,所以我想我应该使用regex。基本上
/\&euro\/
应该像RegEx一样工作,虽然还没有测试过,但是可以试试看不,
/\&euro\/不起作用。我知道。下一步是执行
$(“number”).html(num)
以新字符串替换旧字符串。我将对问题进行编辑以包含此内容。我的意思是这样做:
num=num.replace(“€”,”)。这就成功了。你知道替换发生在哪里/什么时候,以及为什么吗?在阅读了jfriend00的答案(如上)后,我想知道这在其他浏览器中是否一致。我已经验证了这段代码在以下浏览器中有效:OS X Firefox 3.0、Windows Firefox 3.0-4.0、Windows IE 6.0-9.0、Windows Chrome 11。(通过测试)我们必须使用unicode字符而不是HTML代码的原因是因为我们正在处理由HTML源代码创建但与之不同的Live Document对象模型。