我使用该代码将空格替换为另一个字符,但我想知道它的真正含义。
有人可以向我解释这意味着什么吗?谢谢
答案 0 :(得分:24)
这是一个正则表达式,其中\s
表示“匹配空格”,g
是一个标志,表示“全局”,即匹配所有空格,而不仅仅是第一
答案 1 :(得分:10)
它(/.../
)是一个正则表达式文字 - 它创建一个新的RegExp对象就像“嘿”创建一个新字符串一样(字符串与字符串有一些小警告但...)
可以在Mozilla Regular Expression文档页面找到更多信息。
最后的“g”是一个标志,表示“全局匹配”(正则表达式现在将匹配多次 - 否则它只匹配一次)。
\ s是正则表达式转义符,表示“任何空白字符”。具体来说:它“匹配单个空格字符,包括空格,制表符,换页符,换行符。相当于[\ f \ n \ r \ t \ t \ v \ u00A0 \ u2028 \ u2029]。”,来自上面的链接。< / p>
当传递给String.replace
function正则表达式对象的所有匹配项(文字只是创建对象)将被替换为给定的字符串(可选地,String.replace
可以使用回调函数来获取更多柔韧性)。
正如开发人员链接中所讨论的,也可以在没有正则表达式文字的情况下构造相同的对象。下面的代码片段只是试图显示一个RegExp对象的对象性质以及演示非文字形式等。
// note the double \'s as first needed to pass the \ through the string
// literal parsing -- usually better as /\s/g unless need to build regex dynamically
var re = new RegExp("\\s", "g")
// just an object with its own properties/functions (now stored in `re`)
re.test("have a space") // -> true
re.test("nospace") // -> false
"hello world again!".replace(re, "") // -> "helloworldagain!"
// without "g", matches only once
"hello world again!".replace(/\s/, "") // -> "helloworld again!"
快乐的编码。
答案 2 :(得分:8)
/\s/g
/
是正则表达式分隔符。它标志着模式的开始和结束
\s
匹配所有空格字符:'\t'
,'\n'
,'\r'
,'\f'
,' '
和a number of others < / p>
g
表示正则表达式应为match the string globally,以便str.replace
将替换所有出现的模式。
答案 3 :(得分:3)
http://www.regular-expressions.info/
这是一个正则表达式。 //
是正则表达式的语法,将在输入中评估/之间的所有内容,然后将与表达式匹配的任何内容传递给您正在使用的任何函数。
g
末尾的//
表示“全局”,这意味着搜索整个输入,而不仅仅是它遇到的第一个匹配。正则表达式非常流行,可能会变得非常复杂,请在上面的链接中阅读它们。
Javascript有一些使用正则表达式的方法,例如search
和match
。正则表达式存在于许多编程语言中,它们在每种语言中通常略有不同。 http://www.w3schools.com/jsref/jsref_obj_regexp.asp
\s
是许多特殊字符之一,这意味着“任何空白字符”。
答案 4 :(得分:0)
g
小旗标志很重要,否则只会替换第一个匹配的白色/s/
小节字符。