回答
不,在JavaScript中不支持。这种解决方法似乎很成问题,因为你现在失去了正斜杠的能力。
当我需要从ASP.NET后端创建警报消息或其他东西时,我自己遇到了这个问题,并将其粘贴在前端的JavaScript警报中。问题是开发人员可以在Page.Alert()方法中输入任何内容。
我做了什么来解决这个如下:
public void Alert(string message)
{
message = message.Replace("\\", "\\\\")
.Replace("\r\n", "\n")
.Replace("\n", "\\n")
.Replace("\t", "\\t")
.Replace("\"", "\\\"");
// and now register my JavaScript with this safe string.
}
我再次重申什么了之前说的 - 逐字的字符串是不可能的JavaScript。它实际上很容易逃脱像\n \\ \t
等有效的转义字符,但问题来自逃避无效字符,因为他们在不同的功能处理方式,他们变得不兼容。例如
"\a".replace("\a","\\a") // WORKS \a
"aa\a".replace("\a", "\\a") // FAILS \aaa
此外,如果你看的非法特殊字符数组,例如["\a"]
该角色会只是看起来像一个a
。这使得做你想要的东西基本上不可能。
希望至少为你清除它。
一个解决办法的大杂牌...
<html>
<head>
<script>
function foo() {
var string = document.getElementById('foo').innerHTML;
alert(string);
}
window.onload=foo;
</script>
<style>
#foo{
display: none;
}
</style>
</head>
<body>
Calling foo on page load.
<div id="foo">\\server\path\to\file.txt</div>
</body>
</html>
这有很多副作用,你最好希望在你的字符串中没有&。 – 2011-06-30 20:22:59
@Juan Mendes:“大kludge”的哪部分你不了解? – 2011-06-30 21:17:36
维基百科,自由的百科全书跳转至:导航,搜索维基百科,自由的百科全书跳转至:导航,搜索维基百科,自由的百科全书跳转至:导航,搜索维基百科,自由的百科全书跳转至:甚至有资格作为杂食。 – 2011-06-30 22:06:31
模板串做支撑换行符。
`so you can
do this if you want`
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
这当然并不阻止扩展在文本中出现的,并推而广之,代码执行,但也许这是好事吗?
注:我不认为有一种方式来利用现有的字符串,并通过表达插补运行它。这使得不可能以这种方式注入代码,因为代码必须源自源代码。我不知道可以按需进行表达式插值的API。
注2:模板字符串是ES2015/ES6功能。除了(等待它......)IE之外,在每个浏览器中都支持!但是,Edge支持模板字符串。
注3:模板字符串展开转义序列,如果在字符串内部有一个字符串,该字符串将展开其转义序列。
`"A\nB"`
...将导致:
"A B"
...这不会与
JSON.parse
一起工作,因为现在在字符串文字中有一个换行符。可能很高兴知道。
这是一个非常古老的线程,但还是这里有一个解决方法:
function verbatim(fn){return fn.toString().match(/[^]*\/\*\s*([^]*)\s*\*\/\}$/)[1]}
,你会这样使用:
var myText = verbatim(function(){/*This
is a multiline \a\n\0 verbatim line*/})
基本上就是在这里发生的是,js的治疗意见的确作为逐字串。此外,这些都是随功能一起存储的。因此,这里发生的是我们创建了一个函数,其中包含一些我们在逐字函数中提取的逐字评论。
只需使用String.raw()
String.raw`\n`
将输出
\\n
但我不知道如何解决的情况下:
String.raw`hello`hello` // It will throw an TypeError
String.raw`hello\`hello` // Output is 'hello\\`hello'
我不知道如何处理`
:(
- 1. Ruby是否支持逐字字符串?
- 2. SolrJ是否支持字符串数组?
- 3. Process.StartInfo.Arguments是否支持UTF-8字符串?
- 4. 添加字符串逐字字符串
- 5. json是否支持阿拉伯字符?
- 6. 的JavaScript字符串不支持特殊字符
- 7. 字符串逐字问题
- 8. JSON.parse是否支持解析字符串而不用双引号
- 9. ofstream variable.open是否支持预定义的字符串变量?
- 10. 增强测试是否支持宽字符串?
- 11. SAML2 SSO - EntityId中是否支持查询字符串参数URI
- 12. PureScript是否支持像C/Java等“格式化字符串”?
- 13. PCRE是否正确支持unicode字符串?
- 14. Poco数据是否支持多个查询字符串?
- 15. JSON字符串中是否支持双引号?
- 16. Volley是否有JSON参数,字符串响应本机支持
- 17. []运算符不支持字符串
- 18. .NET StringBuilder和逐字字符串文字
- 19. 将字符串(逐字符)插入较大的字符串
- 20. perl:坚持支持提交支持的字符串集合
- 21. 逐行读取字符串
- 22. 逐行扫描字符串
- 23. 如何逐字逐字在C#中的字符串?
- 24. 在PHP中是否有相当于C#的逐字字符串文字?
- 25. Chrome不支持此查询字符串
- 26. android C++字符串支持to_string,stof等
- 27. iOS支持可跨越字符串吗?
- 28. 支持Unicode的字符串(1)程序
- 29. 字符串替换PNG支持JPG
- 30. 检查字符串是否包含字(不是子字符串!)
这只是一个例子,非常适合给定的问题(Windows路径)。你可以替换/任何角色。 – PhiLho 2008-11-12 16:54:35