例如我有这个字符串:
make no@ sen# `se !
Run Code Online (Sandbox Code Playgroud)
我想生成这样的网址
make-no-sen-se!
Run Code Online (Sandbox Code Playgroud)
我有这个:
var value = $('.titleVal').val();
if (value != '') {
value = value.replace(/[^a-z0-9 _-]/gi, '-').toLowerCase();
value = value.split(' ');
var result = '';
for (var i = 0; i < value.length; i++) {
if ((value.length - 1) == i) {
result += value[i];
} else {
result += value[i] + '-';
}
}
$('#vidUrl').val(result);
}
Run Code Online (Sandbox Code Playgroud)
但它会生成这个:
make-no--sen---se--
Run Code Online (Sandbox Code Playgroud) 如何编写与所有有效的西班牙语和阿拉伯语单词匹配的正则表达式.
在英语中,我知道,a-zA-z用希伯来文,它是?-?用俄语写的?-??-???.
我用Javascript.
关于可能重复的问题的注释
该问题的公认答案无效。
它错误地将空格和其他非字母字符报告为toUpperCase == true。:-(
但是我现在看到其他答案之一确实提供了成功的解决方案。关于上一个问题的正确答案来自cimbor。我将发布此问题,因为Barmar接受的答案可以正确解决问题。
如何确定字符串中的哪些字符是大写字母?
我的第一次尝试是使用测试.toUpperCase,但非字母字符也返回true:
var text="Romeo & Juliet";
var characters=text.split('');
// and test with
characters[i]===characters[i].toUpperCase() // but spaces and "&" also test as true
Run Code Online (Sandbox Code Playgroud)
接下来,尽管我使用正则表达式并使用A-Z非英语字符集进行测试,但大写字母可能不在此范围内。
任何人都可以确定字符是否为大写字母吗?
这是我得到的:
string = 'John bought bought black paint for his black car'
words = string.split(' ')
duplicatelessWords = []
for (const word of words) {
if (duplicatelessWords[duplicatelessWords.length - 1] !== word) {
duplicatelessWords.push(word)
}
}
duplicatelessString = duplicatelessWords.join(' ')
Run Code Online (Sandbox Code Playgroud)
它应该返回“约翰为他的黑色汽车买了黑色油漆”
有没有办法让它更快?我想我需要连续多次使用它,有时是短字符串,有时是大字符串。
正则表达式[]总是让我感到困惑.以下是一些常用的模式[]
/[0-9]/ 捕获所有数字/[A-Z]/ 捕获所有26个大写字母/[a-z]/ 捕获所有26个小写字母但是关于
/[A-Za-z0-9] 捕获所有数字,大写字母和小写字母这也可以写成
/[0-z]它还捕获所有数字,大写字母和小写字母.但它也捕捉^和|以及其他字符之间