什么是string.indexOf(“*。”)在Javascript中做什么?
问题描述:
我调试一些代码,发现了下面的代码片段,只是没有得到它做什么:什么是string.indexOf(“*。”)在Javascript中做什么?
function appendModelPrefix(value, prefix) {
if (value.indexOf("*.") === 0) {
value = value.replace("*.", prefix);
}
return value;
}
什么我的字符串值有看起来像获得通过,如果条件验证? 什么是“*”。准确地做?我没有得到通配符...
答
我没有通配符。它搜索然后替换文字"*."
通过prefix
indexOf
发现的"*."
第一次出现的字符串:“*”
>>>"aaa*.".indexOf("*.")
3
因此,如果字符串开头您consition会成功了(索引0)
>>> "*.aaa".indexOf("*.")
0
替换方法将取代第一次出现“*”。
>>> 'abbbc'.replace(/b+/, 'z')
"azc"
答
的indexOf会给字符串内文本的位置:与所选择的前缀
>>> "*.*.".replace("*.", "z")
"z*."
顺便说一句,只有当您使用正则表达式,而不是字符串模式得到通配符的替代品。
因此,if语句读取如果value
以“*”开头。然后将其替换为prefix
答
如果字符串以子串*.
开头,则将其替换为prefix
。
>>> "*.".indexOf('*.')
0
>>> "a*.".indexOf('*.')
1
答
JavaScript中没有wilcard-thing .indexOf()
。
它只是将值*.
替换为prefix
。
答
如果您的value
以*.
开头,那么它会将*.
替换为prefix
参数。
答
它是一种香草字符串匹配,如果value
开始*.
那么*.
由字符串替换prefix
"aaa" -> "aaa"
"*.a" -> "a" + prefix
我可能是错的,但我认为它的检查值,如果没有了”之前出现。 “比它填充前缀 – Drewdin 2011-12-15 16:52:43
这应该有助于你理解代码的作用:http://jsfiddle.net/fuAwb/ – Ivan 2011-12-15 16:54:17