我正在调试一些代码并找到了以下代码片段,但却得不到它的作用:
function appendModelPrefix(value, prefix) {
if (value.indexOf("*.") === 0) {
value = value.replace("*.", prefix);
}
return value;
}
我的值字符串看起来像是通过if条件验证了什么? 什么是“*”。到底怎么办?我没有得到通配符......
答案 0 :(得分:3)
我不是通配符。它会搜索并"*."
prefix
indexOf
在字符串中找到"*."
的第一个出现位置:
>>>"aaa*.".indexOf("*.")
3
如果字符串以“*”开头,那么你的信息就会成功。 (索引0)
>>> "*.aaa".indexOf("*.")
0
然后替换方法将替换第一次出现的“*”。使用所选前缀
>>> "*.*.".replace("*.", "z")
"z*."
顺便说一下,如果使用正则表达式而不是字符串模式,则只能获得通配符替换:
>>> 'abbbc'.replace(/b+/, 'z')
"azc"
答案 1 :(得分:2)
indexOf将给出字符串中文本的位置。
所以if语句读取value
是否以“*”开头。然后将其替换为prefix
答案 2 :(得分:2)
如果字符串以子字符串*.
开头,则将其替换为prefix
。
>>> "*.".indexOf('*.')
0
>>> "a*.".indexOf('*.')
1
答案 3 :(得分:1)
如果您的value
以*.
开头,则它会将*.
替换为prefix
参数。
答案 4 :(得分:0)
javascript .indexOf()
中没有通配符。
它只是将值*.
替换为prefix
。
答案 5 :(得分:0)
如果value
以*.
开头,则{@ 1}}替换为*.
prefix