在特定字符串后删除

时间:2012-12-13 07:10:45

标签: javascript regex string

我有一些文字内容

atxtCtnt = "Helow Hay How Are You"

如果 Hay 存在,我需要删除 Hay你好吗

我是这样做的:

var atxtCtnt = "Helow Hay How Are You",
txt = atxtCtnt.substring(atxtCtnt.indexOf("Hay"));
atxtCtnt = atxtCtnt.replace(txt , "");
alert(atxtCtnt );

如果没有RegExp,请以更好的方式帮助我

6 个答案:

答案 0 :(得分:4)

如果你不想使用Regex ...... 我认为这会使你的代码更短一些

a = atxtCtnt.indexOf('Hay');
atxtCtnt = a >=0?atxtCtnt.substring(0,a):atxtCtnt;

答案 1 :(得分:4)

您需要从0到索引的子字符串。但仅当索引大于0时(文本中存在术语“Hay”)。喜欢这个

var atxtCtnt = "Helow Hay How Are You";
var index = atxtCtnt.indexOf("Hay");
var newText = (index < 0) ? atxtCtnt : atxtCtnt.substring(0, index);
alert(newText);

答案 2 :(得分:2)

这应该有效:

atxtCtnt = atxtCtnt.substring(0, atxtCtnt.indexOf("Hay"));

修改:要考虑Hay是否存在:

atxtCtnt = atxtCtnt.substring(0, atxtCtnt.indexOf("Hay") === -1 ? atxtCtnt.length : atxtCtnt.indexOf("Hay"));

答案 3 :(得分:2)

我不确定这是否比使用子串更好的解决方案,但你也可以试试这个:

atxtCtnt.split('Hay')[0]

您可以删除&#34; Helow&#34;结尾处的空格。像这样:

atxtCtnt.split('Hay')[0].trim()

答案 4 :(得分:2)

var word = "Hay";
var a = "Helow Hay How Are You";
var b = a.split(word); // now you have two parts b[0] = Helow and b[1] = How Are You
document.body.innerHTML=b[0];

答案 5 :(得分:2)

这就是我所做的

var atxtCtnt = "Helow Hay How Are You",
txt = atxtCtnt.substring(0, atxtCtnt.indexOf("Hay"));
alert(txt );​
谢谢你的回答:)