检查字符串前面是否有特定字符
Check if a string is preceded by a certain character
这是我的代码:
if (consoles.toLowerCase().indexOf("nes")!=-1)
document.write('<img class="icon_nes" src="/images/spacer.gif" width="1" height="1">');
if (consoles.toLowerCase().indexOf("snes")!=-1)
document.write('<img class="icon_snes" src="/images/spacer.gif" width="1" height="1">');
当单词"nes"和/或"snes"在字符串"consoles"中时,应该输出它们各自的图标。如果两个控制台都在字符串中,那么两个图标都应该出现。
这显然不起作用,因为"nes"也包含在"snes"中。
那么,有没有办法检查"nes"前面是否有S?
请记住,"nes"可能不是字符串中的第一个单词。
似乎你最好测试"nes"或"snes"是否作为单词出现:
if (/'bnes'b/i.test(consoles))
...
if (/'bsnes'b/i.test(consoles))
...
这些正则表达式中的'b
是单词边界,而i
表示它们不区分大小写。
现在,如果你真的想测试字符串中是否有"nes"但前面没有"s",你可以使用
if (/[^s]nes/i.test(consoles))
检查nes是否在位置0||consoles[index-1]!='s的
我自己的方法是使用replace()
,使用它的回调函数:
var str = "some text nes some more text snes",
image = document.createElement('img');
str.replace(/nes/gi, function (a,b,c) {
// a is the matched substring,
// b is the index at which that substring was found,
// c is the string upon which 'replace()' is operating.
if (c.charAt(b-1).toLowerCase() == 's') {
// found snes or SNES
img = image.cloneNode();
document.body.appendChild(img);
img.src = 'http://path.to/snes-image.png';
}
else {
// found nes or NES
img = image.cloneNode();
document.body.appendChild(img);
img.src = 'http://path.to/nes-image.png';
}
return a;
});
参考文献:
Node.appendChild()
Node.cloneNode()
String.charAt()
String.replace()
"snes".match(/([^s]|^)nes/)
=> null
"nes".match(/([~s]|^)nes/) => nes
检查字母是否在子字符串之前的基本方法。
var index = consoles.toLowerCase().indexOf("nes");
if(index != -1 && consoles.charAt(index-1) != "s"){
//your code here for nes
}
if(index != -1 && consoles.charAt(index-1) == "s"){
//your code here for snes
}
注意:您应该进行检查,以确保您不会将索引推到界外。。。(字符串以"nes"开头会导致错误)
相关文章:
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- 检查最后键入的字符是否为空格
- 检查字符串中的字符是否都是唯一的
- JavaScript 正则表达式,用于检查单个特殊字符是否在字符串中出现一次
- 检测字符是否为字母
- 如何检测第一个字符是否为回车符,并添加回车符
- JavaScript,如何检查字符是否为以下任何一种
- 验证 JavaScript 中的连字符是否只有一个
- 源代码中的TAB字符是否不正确
- 如何检查第一个字符是否为字母
- 检查字符是否为元音
- 检查最后一个字符是否是javascript中的问号
- 检查第一个字符是否为int的错误,如果不是'不要删除那个字符
- Javascript:确定字符串中的所有字符是否都是唯一的,如果不是,则删除重复字符
- 如何检查一个特定的字符是否在javascript字符串数组中可用
- 检查第一个字符是否大写
- Javascript Regex验证字符串长度和最后3个字符是否为数字
- 我如何检查一个猜测的字符是否在这个代码中的字符串
- 检查字符串的第一个字符是否为数字会给出一个错误,即charat不是一个有效的方法
- 谷歌地图静态api url长度超过2048字符是否有任何解决方案?目的是保存为图像