0

我正在尝试编写一个正则表达式来从单词的开头删除空格,而不是在单词之后,并且在单词之后只删除一个空格。

使用正则表达式:

var re = new RegExp(/^([a-zA-Z0-9]+\s?)*$/);

测试示例:

1) wordX[space] - Should be allowed 
2) [space] - Should not be allowed 
3) WrodX[space][space]wordX - Should be allowed 
4) WrodX[space][space][space]wordX - Should be allowed 
5) WrodX[space][space][space][space] - Should be not be allowed 
6) WrodX[space][space] - Allowed with only one space the moment another space is entered **should not be allowed** 
4

4 回答 4

3

试试这个:

^\s*\w+(\s?$|\s{2,}\w+)+

测试用例(为清楚起见添加):

"word"         - allowed (match==true)
"word "        - allowed (match==true)
"word  word"   - allowed (match==true)
"word   word"  - allowed (match==true)
" "            - not allowed (match==false)
"word  "       - not allowed (match==false)
"word    "     - not allowed (match==false)
" word"        - allowed (match==true)
"  word"       - allowed (match==true)
"  word "      - allowed (match==true)
"  word  word" - allowed (match==true)

在此处查看演示。

于 2013-05-26T06:22:43.253 回答
0

尝试这个:

var re = /\S\s?$/;

这匹配字符串末尾的一个非空格,后跟最多一个空格。

new RegExp顺便说一句,当您提供正则表达式文字时,无需使用。仅在将字符串转换为 RegExp 时才需要这样做。

于 2013-05-26T05:40:53.877 回答
0

试试这个正则表达式

/^(\w+)(\s+)/

和你的代码:

result = inputString.replace(/^(\w+)(\s+)?/g, "$1");
于 2013-05-26T05:42:04.780 回答
0

尝试使用我给你的代码并用 javascript 实现,我希望它会为你提供很好的 HTML 代码

<input type="test" class="name" />

Javascript代码:

$('.name').keyup(function() {
    var $th = $(this);
    $th.val($th.val().replace(/(\s{2,})|[^a-zA-Z']/g, ' '));
    $th.val($th.val().replace(/^\s*/, ''));
    });

此代码不允许字符或单词之间有多个空格。在这里查看JsFiddle 链接

于 2017-11-28T05:29:25.010 回答