“/ \ s / g”如何用其他字符替换空格?

时间:2011-03-19 22:41:54

标签: javascript

我使用该代码将空格替换为另一个字符,但我想知道它的真正含义。

有人可以向我解释这意味着什么吗?谢谢

5 个答案:

答案 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有一些使用正则表达式的方法,例如searchmatch。正则表达式存在于许多编程语言中,它们在每种语言中通常略有不同。 http://www.w3schools.com/jsref/jsref_obj_regexp.asp

\s是许多特殊字符之一,这意味着“任何空白字符”。

答案 4 :(得分:0)

g小旗标志很重要,否则只会替换第一个匹配的白色/s/小节字符。