你会怎么做?
我需要测试是否
a)字符串包含两个连续的反斜杠
b),如果没有,测试是否至少有一个反斜杠
if(test.indexOf("\\") >= 0) seems to hit on a string that's "ss\\ss", but I have a feeling that's incorrect. I think it's really just testing for 1 backslash.
AS3不允许你这样做(test.indexOf(“\”)> = 0),因为单个反斜杠会转义其余的代码。
用于测试ID3标签中单反斜杠或双反斜杠的存在,因为有些编辑器使用它作为一个标签类别中多个标签的分隔器,例如流派:rock \ pop,或rock \ pop
谢谢!
答案 0 :(得分:0)
单个反斜杠只会转义结束引号,这会使代码的其余部分成为字符串的一部分。在字符串中指定反斜杠的方法是使用另一个反斜杠来转义它。
例如,
trace("Hello \\ World"); //Output: Hello \ World
trace("Hello \\\\ World"); //Output: Hello \\ World
底线:当您需要一个反斜杠时,字符串中的正确序列为\\
。如果你想要两个,只需将相同的序列放两次。在您的情况下,代码将是这样的:
if(test.indexOf("\\\\") >= 0) {
//test contains two backslashes
} else if(test.indexOf("\\") >= 0) {
//test contains one backslash
}
如果反斜杠的数量对您无关紧要,您也可以使用以下代码通过正则表达式执行此操作。
if(/\\{1,2}/.test(string_to_test)) {
//string_to_test contains one or two occurrences only.
}
当然,如果反斜杠的数量无关紧要(你想要至少一个),那么只检查一个反斜杠就足够了
答案 1 :(得分:-1)
试
如果(s.indexOf( “\\”)-1个){
//有两个或多个连续的反斜杠
}否则if(s.indexOf(“\”)> -1){
//只有一个反斜杠
}