javascript 怎么把字符串中的特殊符号转义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 怎么把字符串中的特殊符号转义相关的知识,希望对你有一定的参考价值。

js中的特殊字符,加上转义符\ 。
例如:
var txt="We are the so-called "Vikings" from the north." document.write(txt) 【错误】
var txt="We are the so-called \"Vikings\" from the north." document.write(txt) 【正确】
参考技术A \就是js里的转义符 参考技术B 可以用replace 替换

java 和 JS(javaScript)中的反斜杠正则转义

首先说下为什么要转义。在正则中有些字符有特殊含义的,比方说 * 可以前一子表达式的任意次,. 表示除“\r\n”之外的任何单个字符,+ 表示前一子表达式的一次或多次,等。而在有些情况下,需要正则验证这些字符,比方说要验证加减乘除四个运算符号,为了告诉编译器,你要验证的是一个字符而不是正则表达式,就要对这些有特殊含义的字符进行转义,这样就有了转义这一操作。

在java 和javascipt中,都是用反斜杠“\”进行转义,然后两种语言的用法不尽相同,下面举例说明:

1. Java中转义字符的使用

java 中正则 一个反斜杠要用两个反斜杠表示,例如"\\"表示一个反斜杠"\",第一个反斜杠为转义,第二个为反斜杠本身。下面看个例子:

Pattern pattern=Pattern.compile("\\.");
System.out.println(pattern);
//输出 /.

这个要验证的是点.本身

所以要验证一个反斜杠,需要四个反斜杠\\\\

Pattern pattern=Pattern.compile("\\\\");
System.out.println(pattern);

// 输出 \\

验证一个反斜杠字符:

Pattern pattern=Pattern.compile("[\\\\]");
System.out.println(pattern);//输出[\\] 表示要验证反斜杠本身
String a="\\";
System.out.println("a="+a);//输出a=\,表示 一个反斜杠字符
Matcher matcher=pattern.matcher(a);
System.err.println(matcher.matches());//输出 true,验证通过

验证任意次数1

Pattern pattern=Pattern.compile("^1*$");//验证任意次数1
System.out.println(pattern);//输出^[-+*/]$
String a="1111";
System.out.println("a="+a);//输出a=1111
Matcher matcher=pattern.matcher(a);
System.err.println(matcher.matches());//输出 true,验证通过验证通过            

验证"1*"字符串

Pattern pattern=Pattern.compile("^1\\*$");//验证任意次数1
System.out.println(pattern);//输出^1\*$
String a="1*";
System.out.println("a="+a);//输出a=1*
Matcher matcher=pattern.matcher(a);
System.err.println(matcher.matches());//输出 true,验证通过

 

 

 

验证+-*/

减号放第一位,不需要转义

Pattern pattern=Pattern.compile("^[-+*/]$");//
System.out.println(pattern);//输出^[-+*/]$
String a="/";
System.out.println("a="+a);//输出a=-,表示 一减号字符
Matcher matcher=pattern.matcher(a);
System.err.println(matcher.matches());//输出 true,验证通过

 

减号不在第一位,需要转义,原因:正则表达式中[0-9] 表示0到9任意字符

Pattern pattern=Pattern.compile("^[+\\-*/]$");//
System.out.println(pattern);//输出^[+\-*/]$
String a="-";
System.out.println("a="+a);//输出a=-,表示 一减号字符
Matcher matcher=pattern.matcher(a);
System.err.println(matcher.matches());//输出 true,验证通过

 

2. js 中的正则转义

直接用一个反斜杠即可完成转义

var str=/^\\$/;  //验证一个反斜杠
var testStr=‘\\‘;
console.log(str.test(testStr))//输出true

 

验证+-*/

var str=/^[+\-*/]$/;  //验证+-*/
var testStr=‘-‘;
console.log(str.test(testStr))//输出true

 

以上是关于javascript 怎么把字符串中的特殊符号转义的主要内容,如果未能解决你的问题,请参考以下文章

C#中怎么把&符号写入XML,不是转义&这种形式的,只插入一个&符号?

相机流密码有@符号怎么转义

url传值含有特殊符号会被转义,怎样保证所有特殊符号都被编码?

请教如何识别url中的中文,并把中文进行转义

JS post表单特殊字符转义问题

正则表达式判断字符串中包含数字,大写字符,小写字母,特殊符号中的几种怎么判断?