选择并修改表

时间:2015-06-17 23:50:50

标签: javascript jquery replace

我正在尝试创建一个替换“。”的基本脚本。或网站特定表格中的网址文字中的“_”。

代码:

$('tbody tr td:nth-child(2) div:nth-child(2) a').each(function() {
    var link = $(this);
    var linkText = link.text();
    link.text( linkText.replace("."," ") );  
    link.text( linkText.replace("_"," ") );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<tbody>
	<tr>
		<td class="category">
			<img src="image.gif" data-original="image.gif"></a>
		</td>
		<td class="filename">
			<div class="visible-xs visible-sm">
				<a href="link" class="link-class">VMware.Workstation.v11.1.2</a>
			</div>				
		</td>								
	</tr>													
	<tr>
		<td class="category">
			<img src="image.gif" data-original="image.gif"></a>
		</td>
		<td class="filename">
			<div class="visible-xs visible-sm">
				<a href="link" class="link-class">ADOBE_AFTEREFFECTS_CC_V2015</a>
			</div>
		</td>
	</tr>
</tbody>

但它无法正常工作。仅使用第一个文本操作并仅替换第一个“。”或“_”不是整个字符串中的所有内容。

例如:

“VMware.Workstation.v11.1.2”=&gt; “VMware Workstation.v11.1.2” - 仅删除第一个点

我需要的是

“ADOBE_AFTEREFFECTS_CC_V2015”=&gt; “ADOBE AFTEREFFECTS CC V2015”和

“VMware Workstation.v11.1.2”=&gt; “VMware Workstation v11.1.2”

嗯,有没有办法在用v开头的字符串之后不改变点(因为版本v11.1.2)。

如果你帮助我创建这个脚本,如果有更好的方法来选择这个表/链接并编辑他们的文本会很棒,我将很高兴。

修改

我差不多准备了,但这个正则表达式是......

/([\.\-\_])(?![\v\d])/g

链接:http://regexr.com/3b7n6

3 个答案:

答案 0 :(得分:0)

replace将正则表达式作为第一个参数。您需要在末尾添加g以使其变得贪婪,以便替换所有匹配项。您可以将代码翻译为:

link.text( linkText.replace(/\./g," ") );  
link.text( linkText.replace(/_/g," ") );

您还可以将其与replace一个link.text( linkText.replace(/[._]/g," ") ); 调用结合起来:

[]

您可以将.视为包含_screen width - container x的一个字符匹配的框。

MDN:Regular Expressions

答案 1 :(得分:0)

您希望进行全球替换。

webpack-dev-server

答案 2 :(得分:0)

对于其中一个代码,代码中没有div:nth-child(2),因此您需要将其替换为div,因为只有一个div子代。

要替换字符,您可以使用这个简单的正则表达式。

$('tbody tr td:nth-child(2) div a').each(function() {
    $(this).text( $(this).text().replace(/\.|_/g," ") );
});

这意味着replace all occurrences of '.' and '_' with ' ' in the current string

此外,您需要tbodytable范围内才能正常使用。否则jQuery将看不到tbody

Demo