jQuery如何用正则表达式替换url文件夹名称?

时间:2017-08-01 05:17:41

标签: javascript jquery regex

  

对不起,我之前在这个问题上误导了,让我修改一下   问题!!!

全部,我需要一个jQuery / JavaScript函数,它可以替换字符串中的所有URL文件夹名称。例如,从(zh-hant到zh-hans);

composer dumpautoload

更改为

<a href="http://somedomain.com/zh-hant/folder1/folder2">http://somedomain.com/zh-hant/folder1/folder2</a>

我已尝试过以下代码,但没有用。这些都没有改变。

<a href="http://somedomain.com/zh-hans/folder1/folder2">http://somedomain.com/zh-hans/folder1/folder2</a>

有人可以帮忙吗? 非常感谢。

6 个答案:

答案 0 :(得分:0)

首先,val()仅适用于表单元素(文本输入等)。相反,您需要使用text()方法更改元素中的文本。

其次,jQuery中的val()text()方法在没有参数的情况下调用它时会获得值/文本,并在传递字符串时设置值/文本。它无法就地更新值。因此,一旦您检索了值并对其进行了替换,您必须再次使用val()方法将其分配回元素。

var str = $(this).val().replace(/\*zh-hant*/g, 'zh-hans');
$(this).val(str);

这可以进一步缩短为:

$this.val( $(this).val().replace(/\*zh-hant*/g, 'zh-hans') );

答案 1 :(得分:0)

使用正则表达式/zh-hant/g和核心JS hrefinnerText属性,

$('a').each(function() {
  this.href = this.href.replace(/zh-hant/g, 'zh-hans');
  this.innerText = this.innerText.replace(/zh-hant/g, 'zh-hans');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="http://somedomain.com/zh-hant/folder1/folder2">http://somedomain.com/zh-hant/folder1/folder2</a>

答案 2 :(得分:0)

您将网址传递给URL构造函数以获取网址的.pathname,使用RegExp /^\/zh-hant/"/zh-hant"替换为"/zh-hans"

var a = document.querySelector("a");
var url = new URL(a.href);
var res = url.origin + url.pathname.replace(/\/zh-hant/, "zh-hans");
a.href = a.textContent = res;
console.log(a.href);
<a href="http://somedomain.com/zh-hant/folder1/folder2">http://somedomain.com/zh-hant/folder1/folder2</a>

答案 3 :(得分:0)

<a>个元素没有值。您需要在文本和href属性中替换它。你也有正则表达式的错误;你真的不需要正则表达式,因为你只是匹配确切的文本。

var newURL = $(this).attr('href').replace('zh-hant', 'zh-hans');
$(this).text(newURL).attr('href', newURL);

答案 4 :(得分:0)

您尚未更新<a>代码...

要更新使用text()html()而不是val().val()用于表单元素。

$(this).text($(this).text().replace(/\*zh-hant*/g, 'zh-hans'));

更新href

$(this).attr('href', $(this).attr('href').replace(/\*zh-hant*/g, 'zh-hans'));

答案 5 :(得分:0)

&#13;
&#13;
var $a = $(this);
var str = $a.text().replace(/zh-hant/g, 'zh-hans');

$a.attr("href", str).text(str);
&#13;
&#13;
&#13;