Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 两个单词之间的空格_Javascript_Regex - Fatal编程技术网

Javascript 两个单词之间的空格

Javascript 两个单词之间的空格,javascript,regex,Javascript,Regex,我正在寻找一个正则表达式来检查输入字段中是否至少有两个单词 我试过这个: var spaceReg=/^\w+\s\w+$/ 它可以很好地工作,但如果我有三个或更多的单词,就不再是了(或者如果我有一个像meyer miller这样的单词) 我的下一次尝试是: /^(?:[\w-]+?)*$/ 但是,如果我在第一个单词的末尾有一个空格,并且只有一个单词,那么这个方法同样有效 这里有专家帮忙吗?不要添加字符串的开始和结束标记: var spaceReg = /\w\s+\w/ 如果您还想确保除了

我正在寻找一个正则表达式来检查输入字段中是否至少有两个单词

我试过这个:

var spaceReg=/^\w+\s\w+$/

它可以很好地工作,但如果我有三个或更多的单词,就不再是了(或者如果我有一个像meyer miller这样的单词)

我的下一次尝试是:

/^(?:[\w-]+?)*$/

但是,如果我在第一个单词的末尾有一个空格,并且只有一个单词,那么这个方法同样有效


这里有专家帮忙吗?

不要添加字符串的开始和结束标记:

var spaceReg =  /\w\s+\w/
如果您还想确保除了单词和空格之外没有其他内容,那么可以使用

var spaceReg =  /^\w+\s+\w[\w\s]*$/
如果希望在开始处(问题中不确定)和破折号处(注释中)留出空格,请使用


只需不添加字符串的开始和结束标记:

var spaceReg =  /\w\s+\w/
如果您还想确保除了单词和空格之外没有其他内容,那么可以使用

var spaceReg =  /^\w+\s+\w[\w\s]*$/
如果希望在开始处(问题中不确定)和破折号处(注释中)留出空格,请使用


编辑:我原以为你想要用破折号分隔的单词来匹配。。试试这个:

编辑:另外,如果您只是想确保您正在测试的字符串中的某个非空格中有一些空格,您可以执行以下简单操作:


编辑:我原以为你想要用破折号分隔的单词来匹配。。试试这个:

编辑:另外,如果您只是想确保您正在测试的字符串中的某个非空格中有一些空格,您可以执行以下简单操作:

您可以在\s的右侧添加*以支持多个空格


您可以在\s的右侧添加*以支持多个空格

您甚至可以舍弃
+
量词。
/\w\s*\w/
要支持多个空格,请转到:meyer miller。这不是两个words@hamburger你什么意思?我刚刚测试了
/^\w+\s+\w[\w\s]*$/.test('meyer-miller')
,结果是错误的。如果你测试“meyer-miller nextname”,它会大喊通过,但它也是错误的,你甚至可以丢弃
+
量词。
/\w\s*\w/
来支持多空间教学,这就是传递给:meyer-miller。这不是两个words@hamburger你什么意思?我刚刚测试了
/^\w+\s+\w[\w\s]*$/.test('meyer-miller')
,结果为假。如果你测试“meyer-miller nextname”,它会大喊通过,但它也是假的。很好,它工作正常。只是为了让它完美。如果单词之间有两个或两个以上的空格,我如何让它工作?在\s,
/[\-\w]+\s+[\-\w]+/
之后添加一个+表示“一个或多个”,a*表示“0或多个”,只要知道它将匹配的不仅仅是单词字符和破折号。。同样,如果您希望接受的空间超过1个,则必须添加
+
,如
/\S\S+\S/
,这很好,它可以正常工作。只是为了让它完美。如果单词之间有两个或两个以上的空格,我如何让它工作?在\s,
/[\-\w]+\s+[\-\w]+/
之后添加一个+表示“一个或多个”,a*表示“0或多个”,只要知道它将匹配的不仅仅是单词字符和破折号。。同样,如果您希望接受超过1个空间,则必须添加
++
,如
/\S\S+\S/
var pattern = /\S\s\S/
1.8.7 :004 > "asd asdasd "=~ /\w+(\s\w+)+/ 
 => 0 
1.8.7 :005 > "asd asdasd"=~ /\w+(\s\w+)+/ 
 => 0 
1.8.7 :006 > "asd asdasd asd"=~ /\w+(\s\w+)+/ 
 => 0 
1.8.7 :007 > "asd"=~ /\w+(\s\w+)+/