正则表达式中从左到右的标记 ( ) JavaScript

Left to right mark in regex (‎) JavaScript

我有这个html(希伯来语文本):

בדיקה בדיקה בדיקה‎ניסיון ניסיון ניסיון

我想删除 (‎),将其替换为 space。

我尝试像这样使用正则表达式:

$('#result').html($('#test').html().replace(/‎/, ' '));
$('#result2').html($('#test2').html().replace(/©/, ' '));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="test">   
בדיקה בדיקה בדיקה&lrm;ניסיון ניסיון ניסיון
  </div>
<hr />
<div id="test2">   
בדיקה בדיקה בדיקה&copy;ניסיון ניסיון ניסיון
  </div>
<hr />
<div id="result"></div>
<hr />
<div id="result2"></div>

我添加了复制示例以表明我可以替换复制字符,因为它是可见符号。但是如何替换从左到右的符号?

当您检索 HTML 时,显然 LTR 标记没有被转换为字符实体,它只是 Unicode 字符 200E

因此,为了允许浏览器使其成为一个实体和不使它成为实体的浏览器,请在 &ltr;\u200E 之间交替使用:

var html = $('#test').html();
var rep = html.replace(/&lrm;|\u200E/gi, ' ');
$('#result').html(rep);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="test">   
בדיקה בדיקה בדיקה&lrm;ניסיון ניסיון ניסיון
</div>
<hr />
<div id="result"></div>

我还允许实体使用大写 (&LTR;) 或小写 (&ltr;),并添加了 g 标志来替换它贯穿整个字符串(如果您只想替换第一个,请删除 g)。