区分' $'和' \ $'在使用javascript indexOf方法的字符串中

时间:2017-03-19 17:36:35

标签: javascript

假设用户在文本区域中输入了以下数据

  

测试\ $ ING

我需要提取和修改数据。问题是我无法区分' $'和' \ $'

我做了以下尝试。

  

indexOf('\\')给出-1
  indexOf('\$')给出4
  indexOf('$')给出4
  charAt(4)提供$

我知道java脚本会对待' \ $'作为一个单一的角色。但是如何区分角色是否是' $'或' \ $'

我已经完成了this post,并且已接受的解决方案建议通过转义反斜杠更改原始文本。这是唯一可行的方法吗?即使是这种情况,如何逃避原文中的反斜杠?

请帮忙

2 个答案:

答案 0 :(得分:3)

\是一个转义字符,这意味着为了获得该字符的文字版本,您必须连续编写其中两个字符。因此,您的字符串应该在JavaScript源代码中写为'test\\$ing'。 (但是,当用户在<textarea>的上下文中键入时,用户不需要转义此字符。)要在字符串中找到后跟$的黑色标记,您可以写:

string.indexOf('\\$') //=> 4

<小时/>

演示片段:

&#13;
&#13;
var string = 'test\\$ing'

console.log(string.indexOf('\\')) //=> 4
console.log(string.indexOf('\\$')) //=> 4
console.log(string.indexOf('$')) //=> 5
console.log(string.charAt(4)) //=> '\'
&#13;
&#13;
&#13;

答案 1 :(得分:1)

  1. 如果您使用字符串'test\$ing',则无法检测到&#39; \&#39;因为它被删除了。
  2. 如果用户在\$内键入textarea.value,则indexOf应该有效。
  3. 请提供更多代码。